दिलचस्प पोस्ट
एंड्रॉइड स्टूडियो: क्यों minSdkVersion और targetSdkVersion दोनों AndroidManifest.xml और build.gradle में निर्दिष्ट हैं? एक नई परियोजना के लिए एक नया खाली शाखा कैसे बनाएं टेम्पलेट फ़ंक्शन के लिए अपरिभाषित संदर्भ GetResource का उपयोग कर एक संसाधन प्राप्त करें () जब तक WebBrowser पूरी तरह से VB.NET में भरी हुई है, तब तक कैसे प्रतीक्षा करें? UIImagePicker केंद्र में फंसने की अनुमति देता है जावा दिनांक में पूर्णांक समय स्टाम्प परिवर्तित करना पायथन को इंस्टॉल करने, आभासी, और पायथन के लिए वितरित करने का उचित तरीका क्या है? जब तक बाकी सब कुछ लोड न हो जाए, तब तक एक jquery स्क्रिप्ट देरी कुछ पूर्णांक वस्तुओं के लिए क्यों == सच है? स्थिति बार-स्विफ्ट 3 छुपा नहीं सकते, मैं अपने नामों में रिक्त स्थान और उद्धरण वाले फाइलों की प्रतिलिपि बनाने के लिए कैसे xargs का उपयोग कर सकता हूं? क्यों कक्षा के आरंभ में FindViewById (आरआईआईडी। ******) के साथ चरम आरंभ करने के लिए एंड्रॉइड ऐप क्रैश हो जाता है? पांडा 2 डेटा फ्रेम्स के संयोजन (एक आम स्तंभ पर शामिल हों) MKMapView एनोटेशन बदलते / क्रम खोने?

सी ++ 11: सही std :: array initialization?

यदि मैं एक std :: array को निम्नानुसार प्रारंभ किया है, तो कंपाइलर मुझे लापता ब्रेसिज़ के बारे में चेतावनी देता है I

std::array<int, 4> a = {1, 2, 3, 4}; 

यह समस्या को हल करता है:

 std::array<int, 4> a = {{1, 2, 3, 4}}; 

यह चेतावनी संदेश है:

 missing braces around initializer for 'std::array<int, 4u>::value_type [4] {aka int [4]}' [-Wmissing-braces] 

क्या यह जीसीसी के मेरे संस्करण में सिर्फ एक बग है, या जानबूझ कर किया है? यदि हां, तो क्यों?

Solutions Collecting From Web of "सी ++ 11: सही std :: array initialization?"

यह std::array के नंगे कार्यान्वयन है:

 template<typename T, std::size_t N> struct array { T __array_impl[N]; }; 

यह एक समग्र ढांचा है जिसका केवल डेटा सदस्य एक पारंपरिक सरणी है, जैसे आंतरिक {} इनर सरणी को प्रारंभ करने के लिए उपयोग किया जाता है।

कुल प्रारंभिक रूप से (लेकिन आमतौर पर अनुशंसित नहीं) कुछ मामलों में ब्रेस एलिज़न की अनुमति है और इसलिए इस मामले में केवल एक ब्रेस का उपयोग किया जा सकता है। यहां देखें: सी ++ सरणियों का वेक्टर

Cppreference के अनुसार डबल ब्रेसिज़ केवल तभी आवश्यक है अगर = छोड़े गए।

 // construction uses aggregate initialization std::array<int, 3> a1{ {1,2,3} }; // double-braces required std::array<int, 3> a2 = {1, 2, 3}; // except after = std::array<std::string, 2> a3 = { {std::string("a"), "b"} };