gpt4 book ai didi

c++ - 'auto a_class::f(...) -> T const' 在语法中是否有歧义?

转载 作者:IT老高 更新时间:2023-10-28 12:57:31 24 4
gpt4 key购买 nike

下面的成员函数原型(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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com