Я думаю (думал), я понимаю auto
. То же о decltype
. Однако в С++ 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
.