सी ++ 11 मानक 8.5.4.3 कहता है:वीसी ++ की एक बड़ी बग? प्रारंभकर्ता-सूची क्यों मूल्य-प्रारंभिक संरचना को प्रारंभ नहीं करती है?
"अगर प्रारंभकर्ता सूची में कोई तत्व नहीं है और टी डिफ़ॉल्ट कन्स्ट्रक्टर वाला क्लास प्रकार है, तो ऑब्जेक्ट वैल्यू-प्रारंभिक है।"
struct A
{
int get() { return i; }
private:
int i;
};
int main()
{
A a = {};
int n = a.get();
cout << n << endl;
// n is a random number rather than 0
return 0;
}
क्या यह वीसी ++ का एक बग है? मेरा वीसी ++ नवीनतम नवंबर 2012 सीटीपी है।
कंपाइलर अनुकूलन सी ++ मानक के प्रावधान को तोड़ना नहीं चाहिए। तो मुझे लगता है कि इसका अनुकूलन करने के लिए कुछ भी नहीं है। – xmllmx
@ किलियनडीएस, कृपया मेरी संशोधित पोस्ट – xmllmx
की समीक्षा करें यदि आप 'std :: cout << n << std :: endl;' जोड़ते हैं तो मुद्रित क्या होता है? – helium