id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 12777,uniform_real_distribution fails to compile with result_type having explicit conversion constructor from float,b7.10110111@…,No-Maintainer,"Consider the following test program: {{{ #include #include #include template void test() { std::random_device rd; std::mt19937 mt(rd()); boost::random::uniform_real_distribution rnd(Float(1),Float(10)); rnd(mt); } int main() { test(); // this works test(); // and this doesn't compile } }}} It uses half.hpp from half.sourceforge.net. This type has a peculiar behavior with arithmetic involving types other than it: the variable converts implicitly to `float`, and then the explicit constructor half_float::half(float) prevents some code from compiling. Namely, the code above doesn't compile due to the `return 2 * generate_uniform_real(...)` in generate_uniform_real(). I've seen there already exist explicit casts like for the arguments T(min_value / 2) and the like. I've been able to fix it locally with the attached patch.",Bugs,new,To Be Determined,random,Boost 1.63.0,Problem,,,