Дано
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? Если нет, то что здесь происходит?
constexpr
из определенияx
, то он скомпилируется. - person Igor Tandetnik   schedule 09.02.2014