मेरे पास the different meanings of a curly-brace enclosed list के बारे में कोई प्रश्न है।जीसीसी 6.3 स्पष्ट रूप से सी ++ 11 समर्थन के बिना इस ब्रेस्ड-इनिट-लिस्ट कोड को संकलित क्यों करता है?
मुझे पता है कि सी ++ 03 ने सी ++ 11 के initializer_list
का समर्थन नहीं किया। फिर भी, यहां तक कि -std=c++11
संकलक ध्वज के बिना, इस कोड के साथ 6.3 will properly initialize interpolate
जीसीसी:
map<string, string> interpolate = { { "F", "a && b && c" }, { "H", "p^2 + w" }, { "K", "H > 10 || e < 5" }, { "J", "F && !K" } };
क्यों यह काम करेगा पर I was challenged, और मैंने महसूस किया कि मैं एक जवाब नहीं था। यह एक ब्रेस-इनिट-लिस्ट है, लेकिन एक मानक कंटेनर शुरू करने के लिए हम जिस तरह से प्राप्त करते हैं वह आम तौर पर initializer_list
के माध्यम से होता है। तो गैर-सी ++ 11 कोड प्रारंभिकरण कैसे पूरा करेगा?
मुझे आश्चर्य है कि यह प्रश्न 'हॉट नेटवर्क प्रश्न' सूची में बनाया गया है: | मैंने सोचा कि यह gcc द्वारा अच्छी तरह से दस्तावेज किया गया था और नए जीसीसी – P0W
@ पी 0 डब्ल्यू में डिफ़ॉल्ट संकलन झंडे के बारे में इंटरनेट पर कई जगहों पर मैं थोड़ा आश्चर्यचकित हूं। उस समय मैंने यह पूछा कि मुझे लगता है कि जीसीसी 5 में डिफ़ॉल्ट व्यवहार के समान, मैं "-std = C++ 98" का उपयोग कर रहा था। मैं अनुमान लगा रहा हूं कि बहुत से लोग इस बात पर थे कि किस तरह की पूर्वकल्पना थी। चिंता न करें, मुझे यकीन है कि यह सिर्फ एक विचलन था, नियमित सी ++ डाउन-वोट अनुपात जल्द ही बहाल किया जाना चाहिए। –