2011-06-26 3 views
12

In class initialization feature है, जो कक्षा के अंदर ही सामान्य सदस्यों प्रारंभ करने की अनुमति देता है,"क्लास सदस्य प्रारंभ में" सुविधा सी ++ 11 में बनाई गई है?

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

इस में त्रुटि दे रहा है नवीनतम संकलक जीसीसी-4.6 (-std=c++0x के साथ)। क्या यह सुविधा सी ++ 11 मानक या जीसीसी में बनाई गई है, फिर भी इसका समर्थन नहीं करता है?

+3

आपका उदाहरण क्लैंग (svn trunk) के साथ ठीक से संकलित करता है। –

+0

क्या आपने जीसीसी 4.7 के साथ प्रयास किया है? इसे –

+0

@Matthieu में शामिल किया गया हो सकता है, मैंने कई हद तक एक सप्ताह पहले उबंटू पर स्थापित जीसीसी-4.6 स्थापित किया था, यह मानते हुए कि यह सभी सुविधाओं का समर्थन करता है। और अब मैं सीख रहा हूं कि जीसीसी -4.7 पहले से ही जारी है !! : '( – iammilind

उत्तर

23

हां, यह सी ++ 0x में कानूनी है। इसका एक उदाहरण N3290 §12.6.2/8:

struct C { 
    /* ... */ 
    int j = 5; // OK: j has the value 5 
}; 
संबंधित मुद्दे