__declspec(nothrow)
オブジェクト参照を返すいくつかのメンバー関数に適用したいと思います。たとえば、この関数 (MyClass.h 内) に追加したいと思います。
CMyClass& operator= ( IN UInt32 nValue )
{
return ( SetValue ( nValue ) );
};
VC++のドキュメントには、次のように関数の戻り値の型の後に追加する必要があると書かれています。
return-type __declspec(nothrow) [call-convention] function-name ([argument-list])
これに従えば、私の機能のほとんどは で正常に動作し__declspec(nothrow)
ます。ただし、上記のメンバー関数 (または a を返す他の関数CMyClass&
) に対してこれを行うと、コンパイル エラーが発生します。
error C2059: syntax error : '__declspec(nothrow)'
戻り値の型の前に配置するとコンパイルされますが、ドキュメントには、__declspec() が間違った場所に配置されている場合、コンパイラは警告やエラーなしでそれを無視する可能性があるとも書かれています。
正しい使い方は__declspec(nothrow)
?