2012-01-19 6 views
25
std::map<std::string, int> m = { 
    {"Marc G.", 123}, 
    {"Zulija N.", 456}, 
    {"John D.", 369} 
}; 

Xcode में मैं सी ++ भाषा बोली "C++ 0x [-std = C++ 0x]" और सी ++ स्टैंडर्ड लाइब्रेरी सेट करने के लिए सेट है "libC++ एलएलवीएम सी ++ सी ++ 0 एक्स समर्थन के साथ मानक लाइब्रेरी"मैं क्यों हो रही है "गैर कुल प्रारंभकर्ता सूची के साथ आरंभ नहीं किया जा सकता है"

क्या मुझे कुछ और सेट करने की आवश्यकता है?

+0

सिंटेक्स '=' के साथ या उसके बिना सही लगता है (मान लीजिए कि आपने पाठ्यक्रम के दायरे में std :: स्ट्रिंग लाया है)। –

+0

'g ++ -std = C++ 11 ' –

उत्तर

28

संपादित करें 10/2013: यह उत्तर वास्तव में पुराना है, ऐप्पल क्लैंग अब इसका समर्थन करता है।

सी ++ 11 प्रारंभकर्ता सूचियाँ अभी तक

बजना 3.0 के देखें यहाँ कार्यान्वयन की स्थिति के रूप में समर्थित नहीं हैं: Clang C++11 implementation status

(आपका वाक्य रचना सही लगती है, तो केवल संकलक इस सुविधा समर्थित)

+0

ओह, मैंने सोचा कि यह लाइब्रेरी पर निर्भर करता है। मुझे लगता है कि यह और अधिक समझ में आता है कि संकलक को इसका समर्थन करने की आवश्यकता है। – joels

+5

आप जीएनयू ++ 11 (-std = gnu ++ 11) का उपयोग करने का प्रयास कर सकते हैं। बहुत यकीन है कि यह प्रारंभकर्ता सूचियों का समर्थन करता है। – rgbrgb

+2

-std = gnu ++ 11 मेरे लिए काम किया - एक्सकोड में या मेकफ़ाइल से संकलित अंतर था – chaosless

11

क्लैंग 3.6.2 प्रारंभकर्ता-सूची वाक्यविन्यास का समर्थन करता है। संकलन करते समय बस -std=c++11 ध्वज पास करना याद रखें।

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