Возврат временного объекта и привязка к константной ссылке [дубликат]
Possible Duplicate:
Does a const reference prolong the life of a temporary?
Мой компилятор не жалуется на назначение временной ссылки на const:
string foo() {
return string("123");
};
int main() {
const string& val = foo();
printf("%s\n", val.c_str());
return 0;
}
Зачем? Я думал, что строка вернулась изfoo
является временным и val может указывать на объект, срок жизни которого истек. Допускает ли это стандарт C ++ и продлевает ли жизнь возвращаемого объекта?