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 ++?

questionAnswers(3)

yourAnswerToTheQuestion