Boost logo

Boost :

Subject: Re: [boost] [random] example code fails inside struct
From: Gevorg Voskanyan (v_gevorg_at_[hidden])
Date: 2011-04-16 06:54:49

Beman Dawes wrote:
> struct X
> {
> boost::mt19937 rng;
> boost::uniform_int<> million(1,1000000); // VC++ 10 error C2059:
> syntax error : 'constant'
> boost::variate_generator<boost::mt19937&, boost::uniform_int<> >
> random_value(rng, million);
> };
> Why does the example code from the docs fail to compile when placed
> inside a struct or class? What am I missing?

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. In C++11 I think you could do this

boost::uniform_int<> million{1,1000000};

> --Beman


Boost list run by bdawes at, gregod at, cpdaniel at, john at