6
struct X {
constexpr static char a1[] = "hello"; // Okay
constexpr static const char* a2[] = {"hello"}; // Error
};

int main(){}

gccでコンパイルすると、エラーが発生します。

エラー:中括弧で囲まれた初期化子は、「{」トークンの前では許可されていません

これはconstexprの違法な使用ですか?

編集

3つの異なるバージョンのgccを試しましたが、最新の4.7.0でコンパイルされたため(ダウンロードしたばかりで、mingw-w64を使用しています)、修正されたバグのようです(バグへのリンクはでもいいです!)。

4.7.0 20120311(プレリリース)//わかりまし
た4.6.4 20120305(プレリリース)//エラー
4.7.0 20110829(実験的)//エラー

4

1 に答える 1

2

これは修正されたバグです。コードがでコンパイルされることを確認しましたg++ 4.7.0 20120311 (prerelease)

于 2012-03-28T06:55:45.080 に答える