重複の可能性:
const参照は一時的なものの寿命を延ばしますか?
私のコンパイラは、const参照への一時的な割り当てについて文句を言いません:
string foo() {
return string("123");
};
int main() {
const string& val = foo();
printf("%s\n", val.c_str());
return 0;
}
なんで?から返される文字列foo
は一時的なものであり、valは存続期間が終了したオブジェクトを指すことができると思いました。C ++標準はこれを許可し、返されたオブジェクトの寿命を延ばしますか?