2

我的印象是Visual C++ 10 内置了static_assert. 但是,当我编译以下

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

我明白了

错误 C3861:“static_assert”:找不到标识符

我在做什么错以及如何static_assert在 Visual C++ 10 中使用?

4

2 回答 2

2

我的印象是 Visual C++ 10 有内置的 static_assert。

确实如此,这对我来说编译得非常好:

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

您的代码中还有其他错误吗?也许这个错误是其他错误链的结果。

于 2011-07-06T10:57:43.643 回答
2

原因是 Visual Studio 被设置为使用 Visual C++ 9 编译器(Visual Studio 2008 附带的编译器)。我不知道它是怎么发生的,也许是配置 Visual Studio 的向导导入了以前版本的路径。

项目属性中的设置已更改 - 在“VC++ 目录”窗格中。检查调用哪个编译器的简单方法是-Bv在编译器命令行中添加选项,这将使编译器报告其版本。

于 2011-09-14T14:14:53.967 回答