Boost logo

Boost :

From: Eric Niebler (eric_at_[hidden])
Date: 2005-03-10 10:57:17

Russell Hind wrote:
> I now get an error on line 311 of foreach.hpp which is in
> template<typename T>
> struct is_range_base
> {
> BOOST_STATIC_CONSTANT(size_t, size =
> sizeof(boost::foreach::is_range_fun((T*)0)));
> BOOST_STATIC_CONSTANT(bool, value = sizeof(yes_type)==size);
> typedef mpl::bool_<value> type;
> };
> The error is on the typedef mpl::bool_<value> type line. (with and
> without the #defines in).
> [C++ Error] foreach.hpp(311): E2231 Member is_range_base<T>::value
> cannot be used without an object
> [C++ Error] foreach.hpp(311): E2299 Cannot generate template
> specialization from 'mpl::bool_<C_>'
> [C++ Error] foreach.hpp(311): E2040 Declaration terminated incorrectly

I'm afraid you're out of luck, for now. Without access to this compiler,
or knowledge of it's quirks, there's nothing I can do. I'll gladly
accept a patch if you can make it work. The first thing I would try if I
were you would be to change the line:

      typedef mpl::bool_<value> type;


      typedef mpl::bool_<is_range_base<T>::value> type;

That's all I can think of right now.

Eric Niebler
Boost Consulting

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