constexpr nie działa, jeśli funkcja jest zadeklarowana wewnątrz zakresu klasy
Używam g ++ 4.8.0, który nie zawiera wcześniejconstexpr
pluskwa. Tak więc poniższy kod działaw porządku:
constexpr int size() { return 5; }
int array[size()];
int main () {}
Jeśli jednak zamknę zarówno zmienną w aclass
tak jakstatic
, to dajebłąd kompilatora:
struct X {
constexpr static int size() { return 5; }
static const int array[size()];
};
int main () {}
Oto błąd:
error: rozmiar tablicy „array” nie jest całkowitym wyrażeniem stałym
Czy zabronione jest używanieconstexpr
w taki sposób lub jeszcze inny błąd g ++?