tags:

views:

268

answers:

1

Hi. When I try to compile this:

#include <boost/fusion/container/map.hpp>
#include <boost/mpl/fold.hpp>

int main(int argc, char** argv)
{
    typedef boost::fusion::map
    <
        boost::fusion::pair<int, const char*>,
        boost::fusion::pair<long, char>
    > FuMap;

    FuMap fuMap("hello", 'w');

    unsigned val = boost::mpl::fold
    <
        FuMap, boost::mpl::int_<0>, boost::mpl::next<boost::mpl::_1>
    >::type::value;
}

I get the following error:

"...boost/mpl/begin_end.hpp", line 35: Error, nofieldfnd: 
apply is not a member of 
boost::mpl::begin_impl<boost::fusion::fusion_sequence_tag>.

From the fusion documentation: "Fusion provides full round compatibility with MPL. Fusion sequences are fully conforming MPL sequences and MPL sequences are fully compatible with Fusion. You can work with Fusion sequences on MPL if you wish to work solely on types."

When I pass a boost::mpl::map it works.

Any clues?

+1  A: 

I asked the same question at http://news.gmane.org/gmane.comp.lib.boost.user and the answer from Christopher Schmidt was correct:

#include <boost/fusion/mpl.hpp>

should fix your problem"

Including what?
wallyk
sorry, the less-than and greater-than erased the include. now it's fixed
Thanks, I edited it for clarity
wallyk