【发布时间】:2012-10-18 10:50:00
【问题描述】:
我想在 header random 中使用 default_random_engine 和 uniform_real_distribution 生成一些随机双数。
我使用 Eclipse for C/C++ 和 MinGW 来构建我的项目。
- Eclipse 版本:4.2.1
- Eclipse CDT C/C++ 开发工具版本:8.1.1.201209170703
- Eclipse CDT GCC 交叉编译器支持版本:1.1.0.201209170703
- MinGW 版本:4.6.2(使用“gcc -v”检查)
当我在编辑器中键入 std::default_random_engine 时,Eclipse 提示我“无法解析类型 'std::default_random_engine'”。
我已经将我的项目配置为支持 C++11 功能
- Open Project Properties->C/C++ Build ->Settings->Tool Settings->GCC C++ Compiler->Miscellaneous->Other Flags. Put "-std=c++0x" at the end
- Project Properties->C/C++ General->Preprocessor Include Paths, Macros->[Providers] tab->your Built-in Compiler Settings provider (toolchain dependent). Click on "Workspace Settings" link which gets you to "Settings" property page, select [Discovery] tab and your provider again. There is "Command to get compiler specs", add "-std=c++0x" in there.
然后我写了一个列表初始化向量和一个范围来测试C++11的支持,代码工作正常。
vector<int> ivec = {1, 2, 3};
for (int i : ivec)
cout << i << " ";
cout << endl;
“std::default_random_engine”有什么问题,我应该怎么做才能解决这个问题?
【问题讨论】:
-
您的编译器附带的 libstdc++ 可能不支持较新的标准库功能,但您的编译器确实支持较新的语言功能。
-
尝试 std::tr1::default_random_engine
-
你做包括
<random>?此外,即使 Eclipse 无法识别它,它是否仍能正确构建? -
@JoachimPileborg 哈哈 +10,在抱怨 Eclipse 的非工作 C++11 IDE 之前看看它是否编译。
-
抱歉这么晚才回复你们。我正在学习使用这个网站,但还不熟悉。请看下面的第一个答案。我同意。即使 Eclipse 无法识别它,它也能正确构建...