
By coincidence, yesterday I modified the iostreams regression tests to use Boost.Random instead of std::rand, which was behaving poorly on Linux and Darwin. The above change means that iostreams is now broken on at least one compiler, CodeWarrior 8.3, which doesn't support SFINAE.
Would you mind if the new constructors and seed functions were included only for compilers supporting enable_if? Alternatively, would you mind if I implemented these functions without enable_if? From a quick look, it appears that all of the seed functions and most if not all of the constructors can be made to work on older compilers without much work.
They can indeed: when I put together the TR1 library in the sandbox vault (http://boost-sandbox.sourceforge.net/vault/index.php?&direction=0&order=&directory=tr1), I wrapped all the random generators in order to provide a TR1 conforming interface: no fancy compiler tricks were required at all. Feel free to steal any code you want. Footnote: strictly speaking these changes which introduce new features should not have been introduced at this time (right before release). John.