Возврат временного объекта и привязка к константной ссылке [дубликат]

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 ++ и продлевает ли жизнь возвращаемого объекта?

Ответы на вопрос(1)

Ваш ответ на вопрос