我似乎无法弄清楚 Clang 在说什么,或者它是否正确,因为 G++-4.7 似乎可以很好地编译它。
该错误来自尝试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
使用 Clang-3.2。
输出clang -v
:
clang version 3.2 (trunk 157320)
Target: x86_64-unknown-linux-gnu
Thread model: posix