
Beman Dawes wrote:
You can't initialize a class data member like that. boost::uniform_int<> million(1,1000000); is valid in a function body or in namespace-scope, but not in class scope...
Doesn't that create a usage problem because there aren't alternative constructors that do work at class scope?
What do you mean? If I guess what you're asking here correctly, then that is a limitation in C++03 addressed in C++11. Here's the proposal for that: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2756.htm It still won't make the code to compile as you have written it, but with slight changes it will: struct X { boost::mt19937 rng; boost::uniform_int<> million{1,1000000}; // or million = boost::uniform_int<>(1, 1000000); boost::variate_generator<boost::mt19937&, boost::uniform_int<> > random_value{rng, million}; }; Please let me know if that info wasn't what you were looking for. HTH, Gevorg