Самостоятельная инициализация статической переменной constexpr, хорошо ли она сформирована?

Учитывая следующее объявление в глобальном пространстве имен:

constexpr int x = x;

Это правильно сформировано?

Проект C ++ 14 стандартного раздела3.6.2 [Basic.start.init] говорит:

Переменные со статической продолжительностью хранения (3.7.1) или продолжительностью хранения потока (3.7.2) должны быть инициализированы нулями (8.5) перед любой другой инициализацией. [...]

То, что делает пример хорошо определенным, это то, чтоx инициализируется своим собственным значением во время постоянной инициализации, которая будет0 из-за нулевой инициализации.

Это действительно так? лязгпринимает этот код в то время какGCC производит диагностику:

error: the value of 'x' is not usable in a constant expression
constexpr int x = x;
                  ^

Ответы на вопрос(1)

Ваш ответ на вопрос