Boost logo

Boost Users :

Subject: Re: [Boost-users] [Bimap][Function] Create a Boost.bimap of SDLKeys and Boost.functions
From: Nathan Ridge (zeratul976_at_[hidden])
Date: 2011-12-05 16:23:52


> >> What is the correct syntax for creating a boost::bimap<SDLKey,
> >> boost::function<void(boost::shared_ptr<Player>, bool)> >?
> >>
> >> The code above does not compile, generating long cryptic template-related
> >> errors.
> >>
> >> Using an std::map<SDLKey, boost::function<void(boost::shared_ptr<Player>,
> >> bool)> > works, however.
> > Yes, but does
> > std::map<boost::function<void(boost::shared_ptr<Player>, bool)>, SDLKey>
> > also compile? Both must be true to get bimap functionality.
> Yes, std::map<boost::function<void(boost::shared_ptr<Player>, bool>,
> SDLKey> also compiles.

Did you try insert()-ing something into such a map? I think you'll find you get the
same errors if you try that, as the ones you're getting with bimap.

The bottom line is, boost::function is not LessThanComparable, so if you want
to use it as the key of a map (or one of the keys of a bimap), you'll have to define
your own comparison for it.

Regards,
Nate
                                               


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net