constexpr以前のバグが含まれていない g++4.8.0 を使用しています。したがって、以下のコードは正常に動作します:
constexpr int size() { return 5; }
int array[size()];
int main () {}
classただし、両方の変数をasstaticで囲むと、コンパイラ エラーが発生します。
struct X {
constexpr static int size() { return 5; }
static const int array[size()];
};
int main () {}
エラーは次のとおりです。
エラー: 配列 'array' のサイズは整数の定数式ではありません
そのような方法で使用することは禁止されていますconstexprか、それとも別の g++ バグですか?