में VS2010 की मेरी नकल में, stdlib.h (लाइनों 353-355)बीच में बंद करें() (noreturn) __declspec नहीं है VS2010
_CRTIMP __declspec(noreturn) void __cdecl exit(_In_ int _Code);
_CRTIMP __declspec(noreturn) void __cdecl _exit(_In_ int _Code);
_CRTIMP void __cdecl abort(void);
मुझे लगता है यह अजीब है कि abort()
पर कोई noreturn
एनोटेशन शामिल हैं। क्या किसी को इसके लिए कोई कारण पता है? क्या यह एक बग है?
संपादित करें: VS2008 में, यह एक ही है, लेकिन लाइनों stdlib.h
की 371-373 noreturn
एनोटेशन की कमी error C4716 ट्रिगर कर रहा है।
आगे संदर्भ: C++0x proposal for standardization of the noreturn
annotation, जो कहता है कि abort
यह करना चाहिए।
संपादित करें: ऐसा लगता है कि एक हटाए गए उत्तर के साथ चर्चा का एक गुच्छा गायब हो गया है, लेकिन इसका सारांश Defect Report #048 में शामिल है।
अच्छा सवाल पर एक बग के रूप में रिपोर्ट करना चाहिए! लिनक्स दुनिया के libc में यह noreturn के रूप में चिह्नित किया गया है। –