给定
struct X {};
constexpr auto x = X{};
struct S {
static constexpr auto& rx = x;
};
gcc 4.8 说
错误:静态成员'S::rx'的非常量类内初始化无效
static constexpr auto& rx = x;
^
错误:(需要类外初始化)
错误:“S::rx”在声明时不能由非常量表达式初始化
我期望x
是一个常量表达式,适合这样的初始化。这是一个 gcc 错误吗?如果没有,这里发生了什么?