Почему 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
.