25

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++ バグですか?

4

3 に答える 3

6

ステータスが であるため、これは明らかにバグRESOLVED INVALIDではありません。これは、GCC の背後にいる人々とそのバグジラが問題を確認した後、これが GCC のバグであるとは考えていないことを意味します。

関連する投稿の 1 つにもこの動作に対する回答があるため、そのページでお知らせします。

于 2013-05-11T04:38:31.447 に答える