std::tr1::shuffle_order_engine defines min and max as static member functions, when they should be instance member functions. Similarly, they forward to the contained _Engine's min and max member functions incorrectly, calling them as though they're static when in reality they're instance.The result of this is that any instantiation and attempted use of shuffle_order_engine (and thus knuth_b) fails to compile.The apparent fix is to change the following in shuffle_order_engine's class template definition in <random> from: static result_type (min)() { // return minimum possible generated value return ((_Engine::min)()); } static result_type (max)() { // return maximum possible generated value return ((_Engine::max)()); }To: result_type (min)() const { // return minimum possible generated value return (_Eng.min()); } result_type (max)() const { // return maximum possible generated value return (_Eng.max()); }
Product Language
Visual Studio Version
Operating System
Operating System Language
Steps to Reproduce
Actual Results
Expected Results
Please wait...