A veces es bueno empezar de nuevo. En C++ puedo emplear esta sencilla maniobra siguiente:Destruye y luego construye un objeto nuevo usando la misma variable
{
T x(31, Blue, false);
x.~T(); // enough with the old x
::new (&x) T(22, Brown, true); // in with the new!
// ...
}
Al final del alcance, el destructor se ejecutará una vez más y todo se vea bien. (Digamos también T
es un poco especial y no le gusta ser asignado, ni mucho menos intercambiado.) Pero algo me dice que no siempre es sin riesgo destruir todo e intentar de nuevo. ¿Hay una posible captura con este enfoque?
¿Por qué diablos quieres hacer esto? –
Este es un enfoque caprichoso de la pedagogía. – Crashworks
¿Qué pasa con solo 'x = T (22, Marrón, verdadero);'? –