है मैं निम्नलिखित निर्माता:दो खाली खाली घुंघराले ब्रेसिज़ क्यों {{}} एक तत्व के साथ एक std :: startizer_list <double> बनाता है, शून्य नहीं?
MyItem(std::initializer_list<double> l) {
std::cout << "l size " << l.size() << ")" << std::endl;
}
जो बाद में डबल घुंघराले ब्रेसिज़ के साथ कहा जाता है:
MyItem{{}}
परिणाम l.size() देता है 1.
है यांत्रिकी के पीछे क्या है ऐसा व्यवहार?
ऐसा लगता है कि एकमात्र तत्व के लिए एक डिफ़ॉल्ट कन्स्ट्रक्टर की तरह नेस्टेड {} नाटकों की तरह लगता है, लेकिन मुझे समझ में नहीं आता कि कटौती क्यों और कैसे टाइप करती है।
ध्यान दें कि http://ru.stackoverflow.com पर एक रूसी स्टैक ओवरफ्लो है –