Inicialización constante "sorprendente" debido al orden de definición
Al leer elslides sobre constexpr la introducción es sobre "inicialización sorprendentemente dinámica con consts". El ejemplo es
struct S {
static const int c;
};
const int d = 10 * S::c;
const int S::c = 5;
Alas, falta la pista de audio, al igual que las notas, así que solo puedo adivinar lo que significa aquí.
¿Es correcto qued
se inicializa "sorprendentemente" dinámicamente, porqueS::c
se defineantes d d
? Que eldeclaració deS::c
es antes ded
robablemente @ no sea suficiente, el compilador necesita la @ compledefinició, ¿derecho
Dicho eso, sospecho, que en el siguiente ejemplod
harí ser inicializado estáticamente?
struct S {
static const int c;
};
const int S::c = 5;
const int d = 10 * S::c; // now _after_ defn of S::c
Y para tomar el pastel, en C ++ 11, lo que tendría que serconstexpr
para una inicialización estática completa? @S::c
, d
¿o ambos