我尝试使用本地编译器和在线http://www.compileonline.com/compile_cpp11_online.php。两者都会产生相同的错误。
#include <iostream>
#include <random>
using namespace std;
int main()
{
default_random_engine gen((random_device())());
cout << "Hello World" << endl;
return 0;
}
我使用g ++编译上面的代码,错误如下:
错误:')'令牌
之前的预期主要表达式
g ++ $ 1.cpp -o $ 1 -g -Wall -std = c ++ 0x //错误
但是,我对clang没有这个问题。
clang ++ -o $ 1 -Werror $ 1.cpp -std = c ++ 11 -O3 // fine
问题&GT;有人可以帮我解决原因吗?以及如何在g ++下更正它,因为我必须运行g ++来调试我的代码。
g ++(Ubuntu / Linaro 4.6.3-1ubuntu5)4.6.3 clang 3.4版(主干185180)
//更新//
//http://en.cppreference.com/w/cpp/numeric/random/uniform_int_distribution
#include <random>
#include <iostream>
int main()
{
std::random_device rd;
std::mt19937 gen(rd());
std::uniform_int_distribution<> dis(1, 6);
for (int n=0; n<10; ++n)
std::cout << dis(gen) << ' ';
std::cout << '\n';
}