0

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

0 回答 0