gpt4 book ai didi

c++ - 与默认构造函数 : clang produces parse error while gcc did not 成为 friend

转载 作者:太空宇宙 更新时间:2023-11-04 12:49:25 24 4
gpt4 key购买 nike

我遇到了一个令人困惑的问题。对于以下代码段:

class A { };
class E
{
friend A::A() throw();
};

我使用 Clang 6 编译此代码示例并得到“错误:'A' 的非 constexpr 声明遵循 constexpr 声明”。我也试过clang 4.0、clang 5.0和gcc 5.4都没有出现这种错误。这是 Clang6 中的错误吗?

最佳答案

来自 class.ctor#7

the implicitly-defined default constructor is constexpr

由于 class A 没有用户声明的构造函数,一个没有参数的非显式构造函数被隐式声明为默认构造函数

但是,

friend A::A() throw();

您显式声明 A::A() 与隐式声明的构造函数(constexpr constructor)不匹配。

具体来说:

either its function-body shall be = default, or the compound-statement of its function-body shall satisfy the requirements for a function-body of a constexpr function;

关于c++ - 与默认构造函数 : clang produces parse error while gcc did not 成为 friend ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49763142/

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