...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
In November 1999, Jeet Sukumaran proposed a framework based on virtual functions, and later sketched a template-based approach. Ed Brey pointed out that Microsoft Visual C++ does not support in-class member initializations and suggested the enum workaround. Dave Abrahams highlighted quantization issues.
The first public release of this random number library materialized in March 2000 after extensive discussions on the boost mailing list. Many thanks to Beman Dawes for his original min_rand class, portability fixes, documentation suggestions, and general guidance. Harry Erwin sent a header file which provided additional insight into the requirements. Ed Brey and Beman Dawes wanted an iterator-like interface.
Beman Dawes managed the formal review, during which Matthias Troyer, Csaba Szepesvari, and Thomas Holenstein gave detailed comments. The reviewed version became an official part of boost on 17 June 2000.
Gary Powell contributed suggestions for code cleanliness. Dave Abrahams and
Howard Hinnant suggested to move the basic generator templates from namespace boost::detail
to boost::random
.
Ed Brey asked to remove superfluous warnings and helped with uint64_t
handling. Andreas Scherer tested
with MSVC. Matthias Troyer contributed a lagged
Fibonacci generator
. Michael Stevens found a bug in the copy semantics
of normal_distribution
and suggested documentation improvements.