0

我正在尝试编译一个 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 )) ) );
    }
4

1 回答 1

3

这意味着throw(...)异常规范是一个非标准的扩展(如果曾经有过一个非答案......),也就是说,C++ 标准没有为这段代码定义一个含义。在 Visual Studio 中,这意味着该函数可能会引发任何异常。

如果它是您自己的代码,您可以通过简单地删除异常规范来修复警告(好吧,无论如何,对于 C++ 异常;我不知道这将如何影响 Microsoft 的结构化异常处理)。

于 2012-09-20T13:49:45.977 回答