我尝试我的本地编译器和在线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 // 没问题
问题> 有人可以帮我弄清楚为什么吗?以及如何在 g++ 下更正它,因为我必须运行 g++ 来调试我的代码。
g++ (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3 clang 版本 3.4 (trunk 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';
}