En mi copia de VS2010, stdlib.h contiene (líneas 353-355)abortar() no está __declspec (NoReturn) en VS2010
_CRTIMP __declspec(noreturn) void __cdecl exit(_In_ int _Code);
_CRTIMP __declspec(noreturn) void __cdecl _exit(_In_ int _Code);
_CRTIMP void __cdecl abort(void);
Me parece extraño que no hay noreturn
anotación en abort()
. ¿Alguien sabe una razón para esto? ¿Es un error?
EDIT: En VS2008, que es la misma, pero las líneas 371 a 373 de stdlib.h
La falta de la noreturn
anotación está provocando error C4716.
Referencia adicional: C++0x proposal for standardization of the noreturn
annotation, que dice que abort
debe llevarlo.
EDITAR: Parece que un montón de discusión desapareció con una respuesta eliminada, pero la esencia está cubierta en Defect Report #048.
buena pregunta! En la libc del mundo de Linux está marcado como noreturn. –