在我的VS2010副本中,stdlib.h包含(第353-355行)
_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
注解。有人知道这是什么原因吗?这是个bug吗?
编辑:在VS2008中是一样的,但stdlib.h的第371-373行
缺少noreturn
注释将触发error C4716。
进一步的参考:C++0x proposal for standardization of the noreturn
annotation,它说abort
应该携带它。
编辑:看起来像一堆讨论消失了一个删除的答案,但它的要点在Defect Report #048中涵盖。
https://stackoverflow.com/questions/3569643
复制相似问题