对于default_random_engine,'之前的'期望的primary-expression')'token'

时间:2013-08-25 23:29:56

标签: c++ ubuntu g++ clang

我尝试使用本地编译器和在线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';
}

0 个答案:

没有答案