देखो:खाली wchar_t शाब्दिक अनुमति क्यों है? निम्नलिखित कोड पर
int main(int argc, char* argv[])
{
// This works: (Disable Lang Ext = *Yes* (/Za))
wchar_t wc0 = L'\0';
wchar_t wc_ = L'';
assert(wc0 == wc_);
// This doesn't compile (VC++ 2010):
char c0 = '\0';
char c_ = ''; // error C2137: empty character constant
assert(c0 == c_);
return 0;
}
क्यों संकलक एक खाली चरित्र शाब्दिक विस्तृत वर्णों के लिए परिभाषित करने की अनुमति है? यह व्यापक रूप से समझ में नहीं आता है, क्योंकि यह char
के लिए समझ में नहीं आता है जहां संकलक त्रुटि उत्पन्न करता है।
क्या यह मानक द्वारा अनुमति दी जाती है?
जीसीसी 4.6.0 दोनों बयान अस्वीकार करता है। वास्तव में – pmr