Olası Çoğalt:
Does a const reference prolong the life of a temporary?geçici nesne dönen ve const referans bağlanma
const referansa geçici atama hakkında şikayet etmiyor Benim derleyici:
string foo() {
return string("123");
};
int main() {
const string& val = foo();
printf("%s\n", val.c_str());
return 0;
}
Neden ? foo
'dan döndürülen dizenin geçicidir ve val, ömür boyu bitmiş nesneye işaret edebilir. C++ standardı buna izin veriyor mu ve iade edilen nesnenin ömrünü uzatıyor mu?
Evet, geçici bir süre, bir ** const ** başvurusu olduğu sürece uzatılır. – chris
Bu tam olarak 2784262 kopyası değil, referansın bir sınıf üyesi olduğu davayı ele almalıdır. Davranış farklıdır. – aberaud
@aberaud sadece bu bir kopya değil, bulduğum için çok daha iyi bir soru. – dashesy