添加<random>头文件的正确方法是什么?

-3 c++ c++11

我试图使用mersenne_twister_engine生成64位随机数但是当我尝试包含时#include <random>,编译器会给我一个警告,如下所示

/usr/include/c++/4.6/bits/c++0x_warning.h:32:2:错误:#error此文件需要编译器和库支持即将推出的ISO C++标准C++ 0x.此支持目前是实验性的,必须使用-std = c ++ 0x或-std = gnu ++ 0x编译器选项启用.make:* [fuse.o]错误1

我怎样才能解决这个问题?

pax*_*blo 5

...并且必须使用-std=c++0x-std=gnu++0x编译器选项启用.

你没看过那个吗?您需要将其中一个添加到编译器命令行中(或者,如果您使用的是IDE,则IDE使用任何方法来设置选项).可在此处找到有关gcc中C++ 11支持的详细信息.

例如(命令行编译),如果您当前的命令是

g++ -o myprog myprog.cpp
Run Code Online (Sandbox Code Playgroud)

你会把它改成类似的东西

g++ -std=c++0x -o myprog myprog.cpp
Run Code Online (Sandbox Code Playgroud)

  • @DarshitDave,它依赖于你的makefile上的_entirely_.你基本要做的是弄清楚如何为g ++设置选项.它可能被硬编码到每个g ++编译动作中,它可能使用CPPFLAGS来影响每个编译,它可以做任何数量的事情.最重要的是,您必须确保make生成的命令行具有该选项.没有makefile,我们无法帮助你. (2认同)