无法解析类型'std :: default_random_engine'

时间:2012-10-29 05:23:19

标签: c++ eclipse c++11

我想在标题随机中使用default_random_engine和uniform_real_distribution生成一些随机的双数字。

我使用Eclipse进行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功能

然后我写了一个列表初始化向量和一个范围来测试C ++ 11的支持,代码工作正常。

    vector<int> ivec = {1, 2, 3};
    for (int i : ivec)
        cout << i << " ";
    cout << endl;

“std :: default_random_engine”出了什么问题,我该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分:7)

更新:自从我发布原始答案已经过了很长时间,它已经过时了。我今天仔细检查了(2014年3月15日):在Eclipse Kepler(Build id 20130614-0229)中就足够了

  • 项目&gt;下添加属性&gt; C / C ++ Build&gt;设置然后在工具设置选项卡上 GCC C ++编译器&gt;杂项 -std=c++11标志,

  • 然后在 Window&gt;下偏好&gt; C / C ++&gt;构建&gt; Discovery 选项卡上的设置选择了 CDT GCC内置编译器设置,并将-std=c++11标志添加到命令以获取编译器规范< / em>的。在我的机器上,在更改后它看起来像这样:

    ${COMMAND} -E -P -v -dD -std=c++11 "${INPUTS}"

  • 清理并重建您的项目您的索引(项目&gt; C / C ++索引&gt;重建),因为Eclipse倾向于缓存错误消息并显示即使它们在更改设置后消失了。

这肯定会在我的机器上运行。如果它不在您的机器上,那么您可能想对此进行一次检查:C++11 full support on Eclipse虽然我不确定正确性这种方法也没有必要在我的机器上进行。截至2014年3月7日,用户claim对其有所帮助,而上述方法则没有。


原帖,现已过时:

<击>

<击>

这似乎是来自IDE的错误错误。

单击项目属性,然后单击C / C ++ General&gt;代码分析&gt;语法和语义错误并取消选择类型无法解析

我还必须在我自己的项目中禁用一堆其他语法和语义错误,例如无效参数,无效重载,符号未解析等。这些虚假错误来自Codan

(您可能必须将__GXX_EXPERIMENTAL_CXX0X__添加到您的定义/预处理器宏中,但不确定这一点。)

<击>