Почему decltype (auto) возвращает ссылку здесь?

Я думаю (думал) я понимаюauto, То же самое оdecltype, Тем не менее, в C ++ 14, может быть какая-то дьявольская вещь, какdecltype(auto) как тип возвращаемого значения функции. Учтите следующее:

decltype(auto) foo()
{
    int m = 1;
    return m;
}

Тип возвратаintвсе имеет смысл.

Тем не мение,

decltype(auto) foo()
{
    int m = 1;
    return (m);
}

возвращаетсяint& (то есть ссылка наint).

У меня нет абсолютно никакой идеи, почему это происходит, почему эти круглые скобки имеют какое-либо значение !? Надеюсь, что кто-то может пролить свет на это.

PS: я также отметил сC++ так как есть еще много людей, которые проверяютC++ тег, чемC++14.

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

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