考虑下面的函数定义:

auto& Fnc1() { return someNonLocalVariable; }

在这种情况下,返回类型未由->明确指定。
但是有&自动关键字。
这是否保证返回引用而不是变量的副本?
这是受支持的语言功能(返回引用)吗?
使用VS 2017,它可以按我的预期工作:返回引用。
但是我找不到任何在线来源进行验证。

最佳答案

是的,这是正确的规范,正如Ron所评论的那样,已在C++ 14中投入使用。 C++ 11确实需要尾随返回类型语法(参数后面为->)。

有关更多信息,请参见cppreference



另请参见auto type deduction,其中包括使用auto&的示例。您可以认为这与使用auto关键字声明变量的规则相同。

关于c++ - 使用新的C++ 11语法具有auto的函数声明,但具有auto&且不带->,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53998710/

10-13 08:10