2

Visual C++ 10 には組み込みstatic_assertの. ただし、次をコンパイルすると

void test()
{
    static_assert( sizeof( char ) == 1, "" );
}

私は得る

エラー C3861: 'static_assert': 識別子が見つかりません

static_assertVisual C++ 10 でどのように使用すればよいですか?

4

2 に答える 2

2

その理由は、Visual Studio が Visual C++ 9 コンパイラ (Visual Studio 2008 に同梱されているもの) を使用するように設定されていたためです。どうやってそれが起こったのかわかりません。おそらく、Visual Studio を構成するウィザードが以前のバージョンへのパスをインポートしたのでしょう。

設定は、プロジェクト プロパティの [VC++ ディレクトリ] ペインで変更されます。どのコンパイラが呼び出されているかを確認する簡単な方法は-Bv、コンパイラにそのバージョンを報告させるオプションをコンパイラ コマンド ラインに追加することです。

于 2011-09-14T14:14:53.967 に答える
2

Visual C++ 10 には組み込みの static_assert があるという印象を受けました。

それは確かにそうであり、これは私にとって完全にうまくコンパイルされます:

int main(){
    static_assert( sizeof( char ) == 1, "" );
}

コードに他のエラーはありますか? このエラーは、他のエラーの連鎖の結果である可能性があります。

于 2011-07-06T10:57:43.643 に答える