且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

我在Clang中发现了一个错误?

更新时间:2023-02-16 12:34:08

是的,您发现了一个错误。

Yes, you have found a bug.

在标准中表示:


9.4.2-3:
如果静态数据成员是const
字面类型,它在
类定义中的声明可以指定
brace-or- equal-initializer其中
每个initializer-clause是
赋值表达式的一个常量
表达式。
文本类型的静态数据成员可以在
类定义中使用constexpr
说明符声明;如果是,它的声明
应指定一个
括号或等于初始化器,其中
每个initializer子句是一个
赋值表达式是一个常量
表达。 [注:在这两个
的情况下,成员可能出现在
常量表达式中。 - end note]
成员仍然在
命名空间范围中定义,如果它在
程序和命名空间范围中使用
定义不包含
initializer。