首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Clang++非静态数据成员初始化错误?C++11

Clang++非静态数据成员初始化错误?C++11
EN

Stack Overflow用户
提问于 2012-05-27 05:02:13
回答 1查看 963关注 0票数 2

我似乎不明白Clang在说什么,或者它是否正确,因为G++-4.7似乎编译得很好。

该错误来自于尝试使用大括号初始化非静态成员的std::uniform_int_distribution

以下操作失败(token_count是模板参数):std::uniform_int_distribution<Int> random_dist{0, token_count-1};

出现以下错误:

代码语言:javascript
复制
error: chosen constructor is explicit in copy-initialization
  std::uniform_int_distribution<Int> random_dist{0, b-1};
                                                ^~~~~~~~

/usr/include/c++/v1/algorithm:2644:14: note: constructor declared here
    explicit uniform_int_distribution(result_type __a = 0,

但是,我可以这样初始化它:

std::uniform_int_distribution<Int> random_dist = std::uniform_int_distribution<Int>(0, token_count - 1);

我使用以下命令对其进行编译:clang++ -std=c++11 -stdlib=libc++ -lc++abi with Clang-3.2。

clang -v的输出

代码语言:javascript
复制
clang version 3.2 (trunk 157320)
Target: x86_64-unknown-linux-gnu
Thread model: posix
EN

回答 1

Stack Overflow用户

发布于 2012-05-27 05:36:38

你可能有一个版本的clang还没有实现泛化的初始化器。主干顶端clang会编译你的代码。您可以使用以下命令检查此功能:

代码语言:javascript
复制
#if __has_feature(cxx_generalized_initializers) 

以下是您可以检查的功能列表:

http://clang.llvm.org/docs/LanguageExtensions.html#cxx11

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10769746

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档