2011-06-26 9 views
12

クラス自体の内部に通常のメンバーを初期化することを可能にするIn class initialization featureC++ 11に「In class member initialization」機能がありますか?

struct A { 
    int a = 0; // error: ISO C++ forbids in-class initialization of non-const static member ‘a’ 
}; 

これはにエラーを与えている最新コンパイラGCC-4.6(-std=c++0xを有します)。この機能はC++ 11標準になっていますか、それともgccはそれをサポートしていませんか?

+3

あなたの例はclang(svn trunk)でうまくコンパイルされます。 –

+0

gcc 4.7で試しましたか?これは、 –

+0

@Matthieuに組み込まれている可能性があります。私は何とかgcc-4.6をすべての機能をサポートしていると仮定して、週に戻ってUbuntuにインストールしました。そして今、gcc-4.7がすでにリリースされていることを学んでいます! : '( – iammilind

答えて

23

はい、これはC++ 0xでは有効です。これの例がN3290§12.6.2/ 8にあります。

struct C { 
    /* ... */ 
    int j = 5; // OK: j has the value 5 
}; 
関連する問題