Temporäres Objekt zurückgeben und an konstante Referenz binden [duplizieren]
Mögliche Duplikate:
Verlängert eine konstante Referenz die Lebensdauer eines Provisoriums?
Mein Compiler beschwert sich nicht über die temporäre Zuweisung einer const-Referenz:
string foo() {
return string("123");
};
int main() {
const string& val = foo();
printf("%s\n", val.c_str());
return 0;
}
Warum? Ich dachte, die Saite käme von zurückfoo
ist temporär und val kann auf ein Objekt verweisen, dessen Lebensdauer abgelaufen ist. Lässt dies der C ++ - Standard zu und verlängert er die Lebensdauer des zurückgegebenen Objekts?