Dopo aver letto this article sul blog di Herb Sutter, ho sperimentato un po 'e mi sono imbattuto in qualcosa che mi lascia perplesso. Sto usando Visual C++ 2005, ma sarei sorpreso se questo dipendesse dall'implementazione.Const riferimento a temporaneo
Ecco il mio codice:
#include <iostream>
using namespace std;
struct Base {
//Base() {}
~Base() { cout << "~Base()" << endl; }
};
int main()
{
const Base & f = Base();
}
Quando eseguito, mostra "~Base()
" due volte ... Ma se io non-commento del costruttore, visualizza solo volta!
Qualcuno ha una spiegazione per questo?
Sorprendente risposta, grazie mille Sir :) – Drealmer
Interessante. Ciò comporterà l'affettamento degli oggetti in alcuni casi? –
"C++ 1x risolverà questo problema." oh caro, è quello che stanno chiamando il prossimo standard ora o è uno scherzo spiritoso? – veefu