我正在尝试编译一个 VC++ 项目,它提示这个错误
Microsoft Visual Studio 10.0\VC\atlmfc\include\atlalloc.h(517): warning C4987: nonstandard extension used: 'throw (...)'
它指向的线是
_Ret_opt_bytecap_x_(nElements * sizeof(T)) T* Allocate(_In_ size_t nElements) throw( ... )
{
return( AllocateBytes( ::ATL::AtlMultiplyThrow(nElements,sizeof( T )) ) );
}
最佳答案
这意味着 throw(...)
异常规范是一个非标准的扩展(如果有的话,也是一个非答案...),也就是说,C++ 标准确实没有为这段代码定义意义。在 Visual Studio 中,这意味着该函数可能会引发任何异常。
如果它是您自己的代码,您可以通过简单地删除异常规范来修复警告(好吧,无论如何,对于 C++ 异常;我不知道这将如何影响 Microsoft 的结构化异常处理)。
关于c++ - "warning C4987: nonstandard extension used: ' throw (... )'"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12513986/