रूप https://stackoverflow.com/a/26614984/481267 से देखा जा सकता निम्न हेडर #include <initializer_list>
करने के लिए मानक द्वारा गारंटी दी जाती है:इन सी ++ शीर्षकों को <itializer_list> शामिल करने के लिए क्यों निर्दिष्ट किया गया है?
- [कंटेनर]
<utility>
<string>
<algorithm>
<random>
<valarray>
में सब कुछ<regex>
इन हेडर के अधिकांश कम से कम एक समारोह है कि एक std::initializer_list<E>
तर्क लेता घोषित, तो यह समझ में आता है। हालांकि,
<array>
,<stack>
, और<queue>
हालांकि शायद यह समझ में आता है समान रूप से यहाँ सभी कंटेनर के इलाज के लिए, ऐसी कोई कार्य हैं।<utility>
में ऐसा कोई फ़ंक्शन नहीं है।<iterator>
करता है एकinitializer_list
तर्क (rbegin
,rend
) के साथ कार्य होते हैं, लेकिन यह<initializer_list>
शामिल करने के लिए निर्दिष्ट नहीं है।
इन अपवादों के पीछे तर्क क्या है?
मुझे लगता है कि वर्दी प्रारंभिकरण का उपयोग करने के लिए '' को शामिल करने की आवश्यकता है। इस प्रश्न की टिप्पणियां देखें [यहां] (http://stackoverflow.com/q/33704978/3093378)। –
vsoftco
' 'में शामिल करने से एन 2672 तक सभी तरह की तिथियां मिलती हैं। बाकी एन 2 9 30 द्वारा किए जाते हैं। मुफ्त 'rbegin'/'rend' देर से जोड़ रहे हैं। –
@ vsoftco केवल तभी यदि आप स्पष्ट रूप से या स्पष्ट रूप से इस प्रकार का उपयोग करते हैं। –