最近、Visual Studio 2012 に更新しましたが、例外仕様に問題があります。次の形式のシステム ファイルでエラーが発生し続けます。
<some type> function(<some input>) _NOEXCEPT
{
<some code>
}
どこ
#define _NOEXCEPT throw()
マクロが定義されており、使用はVisual Studio Exception Handlingで定義されているため、エラーが発生する理由がよくわかりません。エラーは次のようなものです。
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\list(1119): error C2059: syntax error : '{'
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\list(1119): error C2334: unexpected token(s) preceding '{'; skipping apparent function body
上記の「リスト」ファイルの 1118 ~ 1121 行目は次のとおりです。
const_iterator begin() const _NOEXCEPT
{ // return iterator for beginning of nonmutable sequence
return (const_iterator(this->_Nextnode(this->_Myhead), this));
}
エラーは、上記のパスにある "list" と "xtree" から発生します。上記のリンクで指定されているように「\ EH」フラグを変更しようとしましたが、役に立ちませんでした。
これを引き起こしている可能性のあるアイデアはありますか?
編集:プリプロセッサ ファイルの抜粋を追加します。
const_iterator begin() const {printf("ERROR: %s\n in file %s at line %d\n", ,"C:\\Program Files (x86)\\Microsoft Visual Studio 11.0\\VC\\include\\list",1118); throw(1);}
{
return (const_iterator(this->_Nextnode(this->_Myhead), this));
}
このファイルから何を作成すればよいかわかりませんが、サンプル コードを次に示します。