«Удивительная» константа инициализации из-за порядка определения

При чтениислайды о constexpr введение о«удивительно динамическая инициализация с помощью conts», Пример

struct S {
    static const int c;
};
const int d = 10 * S::c;
const int S::c = 5;

Увы, звуковая дорожка отсутствует, как и заметки, поэтому я могу только догадываться, что здесь имеется в виду.

Это правильно, чтоd «удивительно» инициализируется динамически, потому чтоS::c определенодо d? Чтодекларация изS::c доd Вероятно, недостаточно, компилятор нуждается в полнойопределение, правильно?

Тем не менее, я подозреваю, что в следующем примереd было бы быть инициализирован статически?

struct S {
    static const int c;
};
const int S::c = 5;
const int d = 10 * S::c;  // now _after_ defn of S::c

И взять торт, в C ++ 11,что должно бытьconstexpr для полной статической инициализации?S::c, d или оба?

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

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