此代码不在Coliru中编译,尽管它似乎符合iso§5.19p2第9个项目符号和iso§3.9p10,即S
是文字类型,因此,{ {1}}应被视为常量表达式。特别是,iso§3.9p10项目符号第3点没有说明有关联合成员的任何内容。
S a(1);
答案 0 :(得分:9)
这是标准化的7.1.5 / 4([dcl.constexpr],“constexpr
说明符”):
constexpr 构造函数的定义应满足以下约束条件:
[...]
应初始化每个非静态数据成员和基类子对象
[...]