क्या यह कानूनी सी ++ है?क्या आप किसी अन्य सदस्य की घोषणा करते समय एक सदस्य के आकार का उपयोग कर सकते हैं?
struct foo
{
int a[100];
int b[sizeof(a)/sizeof(a[0])];
};
जीसीसी 4.6 इसे स्वीकार करता है, लेकिन एमएसवीसी 2012 नहीं करता है। ऐसा लगता है कि यह मेरे लिए ठीक होना चाहिए, लेकिन कुछ गुगलिंग ने मदद नहीं की और मुझे नहीं पता कि मानक में कहां देखना है।
error C2327: 'foo::a' : is not a type name, static, or enumerator
error C2065: 'a' : undeclared identifier
error C2070: ''unknown-type'': illegal sizeof operand
warning C4200: nonstandard extension used : zero-sized array in struct/union
संभव डुप्लिकेट: // stackoverflow.com/questions/9656941/why-i-cant-initialize-non-const-static-member-or-static-array-in-class) –
भले ही अंतिम कारण समान है, सवाल मेरे लिए बहुत अलग दिखता है । – Gorpik
सी ++ 11 मानक में प्रासंगिक पैराग्राफ क्लॉज 5, अनुच्छेद 8 है, मुझे लगता है। – jrok