Después de leer this article en el blog de Herb Sutter, experimenté un poco y me encontré con algo que me desconcierta. Estoy usando Visual C++ 2005, pero me sorprendería si esto dependiera de la implementación.Referencia de Const a temporal
Aquí está mi código:
#include <iostream>
using namespace std;
struct Base {
//Base() {}
~Base() { cout << "~Base()" << endl; }
};
int main()
{
const Base & f = Base();
}
Cuando ejecutado, muestra "~Base()
" dos veces ... Pero si yo no-comentar el constructor, se muestra sólo una vez !
¿Alguien tiene una explicación para esto?
Sorprendente respuesta, muchas gracias Señor :) – Drealmer
Interesante. ¿Esto dará como resultado el corte de objetos en algunos casos? –
"C++ 1x arreglará esto". Dios mío, ¿es eso lo que están llamando el próximo estándar ahora o es esto una broma ingeniosa? – veefu