我似乎无法弄清楚Clang在说什么或者它是否正确,因为G ++ - 4.7似乎很好地编译它。Clang ++非静态数据成员初始化错误? C++ 11
错误来自于尝试使用花括号为非静态成员初始化std::uniform_int_distribution
。
下失败(token_count
是一个模板参数): std::uniform_int_distribution<Int> random_dist{0, token_count-1};
与错误:
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
机智h Clang-3.2。
的clang -v
输出:
clang version 3.2 (trunk 157320)
Target: x86_64-unknown-linux-gnu
Thread model: posix
您能给我们从'铛-v'确切的输出? – Xeo
也许你可以使用旧式'std :: uniform_int_distribution random_dist(0,token_count-1)'。 –
kennytm
这个[bug](http://llvm.org/bugs/show_bug.cgi?id=12120)*可能是相关的,但我不确定。 –