- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
下面的成员函数原型(prototype)在 C++11 中应该如何解释?
class C {
public:
auto f(...) -> T const;
}
在我看来,它既可以是 C 类的 const 成员函数,也可以是返回 T 类型的 const 值的非 const 成员函数。
我知道我可以把函数写成
T const f(...);
或
T f(...) const;
但是,我想与我声明函数的方式保持一致,所以我决定在任何地方都使用新的 C++11 auto f(...) -> RetType
方式。
最佳答案
尾随返回类型出现在 非静态成员函数的 cv 和 ref 限定符之后。这意味着问题中的示例与 T const f(...);
.
§8.4.1 [dcl.fct.def.general] p2
The declarator in a function-definition shall have the form
D1
( parameter-declaration-clause ) cv-qualifier-seqopt ref-qualifieropt exception-specificationopt attribute-specifier-seqopt trailing-return-typeopt
要声明一个 const
成员函数,您需要编写 auto f(...) const -> T const;
。
关于c++ - 'auto a_class::f(...) -> T const' 在语法中是否有歧义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14015142/
下面的成员函数原型(prototype)在 C++11 中应该如何解释? class C { public: auto f(...) -> T const; } 在我看来,它既可以是 C 类的
我是一名优秀的程序员,十分优秀!