C++ 在c++;isn';t在代码块中工作

C++ 在c++;isn';t在代码块中工作,c++,codeblocks,C++,Codeblocks,我目前正在使用代码块,出于某种原因,它一直给我这个奇怪的错误: 错误:“decltype”之前需要类型说明符。 我尝试过各种不同的源代码,它总是给我这个错误,我甚至复制并粘贴了一个从我的指南书和相同的消息出现 例如,这不起作用: template<class T, class U> auto add(T t, U u) -> decltype(t + u) // this is where the error occurs... { return t + u; } 模

我目前正在使用代码块,出于某种原因,它一直给我这个奇怪的错误:

错误:“decltype”之前需要类型说明符。

我尝试过各种不同的源代码,它总是给我这个错误,我甚至复制并粘贴了一个从我的指南书和相同的消息出现

例如,这不起作用:

template<class T, class U>
auto add(T t, U u) -> decltype(t + u) // this is where the error occurs...
{
    return t + u;
}
模板
自动添加(T,U)->decltype(T+U)//这是发生错误的地方。。。
{
返回t+u;
}

您的编译器不支持C++11,或者该支持未启用,您需要添加一些编译器选项。您还没有告诉use您正在使用哪个编译器版本,所以我不能说这两种可能性中哪一种是正确的


使用GCC或Clang,您可以通过
-std=C++11
启用C++11,或者对于较旧的GCC版本,
-std=C++0x

转到
项目->构建选项
并单击其中包含
-std=C++11
的框。我现在正在使用一个空文件,因此它变灰了,这是否意味着如果我想使用c++11语法,我每次都必须启动一个新项目?decltype和auto是c++11的功能,您需要将代码编译为c++11。好的,谢谢大家的帮助,@0x499602D2解决方案成功了