Возможный дубликат:
Помогает ли ссылка const ссылаться на временную жизнь?
Мой компилятор не жалуется на назначение временной ссылки const:
string foo() {
return string("123");
};
int main() {
const string& val = foo();
printf("%s\n", val.c_str());
return 0;
}
Почему? Я думал, что строка, возвращаемая из foo
, является временной, и val может указывать на объект, срок жизни которого завершен. Предоставляет ли стандарт С++ это и продлевает срок службы возвращаемого объекта?