Hi Hicham,

On 16 May 2010 12:02, Hicham Mouline <hicham@mouline.org> wrote:

template <std::size_t max_dim>
struct S {
 typedef boost::mpl::range_c<std::size_t, 2u, max_dim> range_t;
 typedef boost::mpl::vector_c<std::size_t> all_dims1_t;
 typedef boost::mpl::copy< range_t, boost::mpl::back_inserter<all_dims1_t>
>::type all_dims_t;
};

The error is:
error: type 'boost::mpl::copy<...>' is not derived from type 'S<max_dim>'

Really strange?

mpl::copy<>::type is dependent on max_dim, so you need a "typename" in front of boost::mpl::copy.

Cheers,
Darren