C++ C+中无法识别的命令行+;11

C++ C+中无法识别的命令行+;11,c++,c++11,C++,C++11,我编译了以下程序,但不知道为什么会出现以下错误: 错误:无法识别的命令行选项'-std=c++11' 我的GCC版本是4.6,我已经在NETBeS中设置了C++编译器,C++ 11。 #include <cstdlib> #include <algorithm> using namespace std; template<class T> void parallel_sort(T* data, int len, int grainsize) { if

我编译了以下程序,但不知道为什么会出现以下错误:

错误:无法识别的命令行选项'-std=c++11'

<>我的GCC版本是4.6,我已经在NETBeS中设置了C++编译器,C++ 11。
#include <cstdlib>
#include <algorithm>
using namespace std;

template<class T>
void parallel_sort(T* data, int len, int grainsize)
{
    if(len < grainsize) // Use grainsize instead of thread count so that we don't e.g. spawn 4 threads just to sort 8 elements.
    {
        std::sort(data, data + len, std::less<T>());
    }
    else
    {
        parallel_sort(data + len/2, len/2, grainsize); // No need to spawn another thread just to block the calling thread which would do nothing.

        std::inplace_merge(data, data + len/2, data + len, std::less<T>());
    }
}

int main(int argc, char** argv) {
    return 0;
}
#包括
#包括
使用名称空间std;
模板
void并行_排序(T*data,int len,int grainsize)
{
if(len
将您的GCC升级到支持现代C++11的版本,如GCC4.8或更高版本。

将您的GCC升级到支持现代C++11的版本,如GCC4.8或更高版本。

尝试阅读GCC4.6的手册,其中说明您需要使用
-std=C++0x
-std=gnu++0x
,请参阅

这是因为GCC4.6是在C++11标准发布之前发布的


您需要调整Netbeans设置以使用
-std=c++0x
而不是
-std=c++11

请尝试阅读GCC4.6的手册,其中说明您需要使用
-std=c++0x
-std=gnu++0x
,请参阅

这是因为GCC4.6是在C++11标准发布之前发布的


您需要调整Netbeans设置以使用
-std=c++0x
而不是
-std=c++11

试试
-std=c++0x
,gcc4.6可能太旧了,不支持
-std=c++11
,我相信是4.7.1左右添加的。@chris JonathanWakely,酷,谢谢。我想这使它比我下学期在课堂上使用的版本(实际上是两个)略胜一筹。试试看,
-std=c++0x
,gcc4.6可能太旧了,不支持
-std=c++11
,我相信是4.7.1左右添加的。@chris,@JonathanWakely,酷,谢谢。我想这比我下学期上课用的版本(实际上是两个)多了一个次要版本。