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