Wak*_*zil 4 c++ constexpr c++11
此代码不在Coliru中编译,尽管它似乎符合iso§5.19p2第9个子弹点和iso§3.9p10,即,S是文字类型,因此,S a(1);应该被视为常量表达式.特别是,iso§3.9p10项目符号第3点没有说明有关联合成员的任何内容.
#include <iostream>
struct S
{
int i;
float x;
constexpr S(int j) : i{j} {}
};
int main()
{
constexpr S a(1);
}
Run Code Online (Sandbox Code Playgroud)
这在7.1.5/4([dcl.constexpr]," constexpr说明符")中标准化:
constexpr构造函数的定义应满足以下约束:
[...]
应初始化每个非静态数据成员和基类子对象
[...]
| 归档时间: |
|
| 查看次数: |
219 次 |
| 最近记录: |