Временное продление жизни

Раздел 12.2.5 стандарта гласит:

Временная привязка к ссылочному параметру в вызове функции (5.2.2) сохраняется до завершения полного выражения, содержащего вызов. Временная привязка к возвращенному значению в операторе возврата функции (6.6.3) сохраняется до выхода из функции. Во всех этих случаях временные файлы, созданные во время вычисления выражения, инициализирующего ссылку, кроме временного, к которому привязана ссылка, уничтожаются в конце полного выражения, в котором они созданы, и в обратном порядке завершение их строительства.

Код, который я пытаюсь понять:

#include 

const int& foo(const int& fooRef)
{
    return fooRef;
}                                        // #0

int main (void)
{
    const int& numberRef = foo(5);     // #1
    std::cout < numberRef;            // #2
    return 0;
}

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

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