2012-03-28 10 views
6
struct X { 
constexpr static char a1[] = "hello"; // Okay 
constexpr static const char* a2[] = {"hello"}; // Error 
}; 

int main(){} 

जीसीसी के साथ संकलन त्रुटि देता है:त्रुटि - त्रुटि: एक ब्रेस संलग्न प्रारंभकर्ता यहाँ से पहले अनुमति नहीं है '{' टोकन

error: a brace-enclosed initializer is not allowed here before '{' token

इस constexpr के अवैध उपयोग है ?

संपादित

मैं जीसीसी के 3 विभिन्न संस्करणों की कोशिश की, और यह नवीनतम 4.7.0 पर संकलित मेरे पास है, (मैं तो बस, मैं MinGW-W64 उपयोग कर रहा हूँ इसे डाउनलोड) तो यह लग रहा है एक निश्चित बग (हालांकि बग का एक लिंक अच्छा होगा!)।

4.7.0 20120311 (prerelease) // Okay
4.6.4 20120305 (prerelease) // Error
4.7.0 20110829 (experimental) // Error

+0

@ बेंजामिन लिंडले: मैंने एक नया संस्करण डाउनलोड किया और यह काम किया, इसलिए यह एक निश्चित बग (मेरे संपादन देखें) लगता है। धन्यवाद! (क्या मुझे यह प्रश्न हटा देना चाहिए ??) –

+1

@ जेसे: मैं यहां प्रश्न छोड़ दूंगा (हालांकि यदि संभव हो तो शीर्षक पर सुधार करें, उदाहरण के लिए त्रुटि संदेश जोड़ना)। इस तरह से अगले व्यक्ति को इस मुद्दे को अपडेट करना होगा। –

उत्तर

2

यह एक बग है जिसे ठीक किया गया है। मैंने पुष्टि की है कि कोड g++ 4.7.0 20120311 (prerelease) के साथ संकलित करता है।

संबंधित मुद्दे