相关疑难解决方法(0)

为什么在类中初始化的非整数静态数据成员必须是constexpr?

在类定义中初始化静态整型数据成员可以声明constconstexpr,但在类定义中初始化非整数的静态数据成员必须是constexpr:

class MyClass {
  static const     int   w = 5;          // okay
  static constexpr int   x = 5;          // okay
  static const     float y = 1.5;        // error!
  static constexpr float z = 1.5;        // okay
};
Run Code Online (Sandbox Code Playgroud)

有人知道为什么不允许y的声明吗?标准中将其定为非法的部分是9.4.2/3,但为什么它是非法的?

c++ static-members constexpr c++11

20
推荐指数
1
解决办法
6658
查看次数

标签 统计

c++ ×1

c++11 ×1

constexpr ×1

static-members ×1