Czy fragment koduCzy członkowie tablicy constexpr kompilują stałe czasowe?
struct Parameters {
static constexpr int n = 2;
static constexpr double v[n] = {4.0, 5.0};
};
prawny C++ 11? A jeśli tak, to czy są to stałe czasowe kompilujące lub czy jest to tylko wskaźnik Parameters::v
(cokolwiek oznaczałoby to w czasie kompilacji)?
Jak widać, jestem ogólnie nieco zmieszany z tablicami constexpr
i ich inicjowaniem w klasach/strukturach. Proszę nie tylko odpowiedzieć na moje konkretne pytanie, ale także wspomnieć o typowych pułapkach i tym podobnych dotyczących tego tematu.
Należy zauważyć, że 'v' nie jest wskaźnikiem, to tablica. – Angew
Wydaje się być całkowicie legalnym: http://ideone.com/oMwXAj –
możliwy duplikat [\ 'x \ [0 \] == 1 \' wyrażenie stałe w C++ 11, gdy x jest const int \ [\] ?] (http://stackoverflow.com/questions/18903113/x0-1-constant-expression-in-c11-when-x-is-const-int) –