在类定义中初始化静态整型数据成员可以声明const或constexpr,但在类定义中初始化非整数的静态数据成员必须是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,但为什么它是非法的?