Considere el siguiente código:¿Hay alguna garantía para el orden en el que C++ apilar las variables son destruidos
{
std::auto_ptr<Something> p1(pSomePointer);
std::auto_ptr<Something> p2(pSomeOtherPointer);
...
}
¿Hay alguna garantía de que p2 destructor será llamado antes de p1 al salir del alcance? El sentido común dice que las variables de pila se deben destruir desde la parte superior de la pila, pero el compilador de C++ puede reordenar las asignaciones.
... y no solo para variables de pila. – sbi
@sbi: Sí, y este último puede conducir a todo tipo de errores si no se tiene cuidado. – sharptooth
@sbi ¿De qué otras variables estamos hablando? ¿Global? – Elemental