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 に答える