Hi,
 
I'm trying to bind boost::fusion::at_key, but i do not understand why the following piece of code do not compile :

 

struct tag

{

class a;

class b;

class c;

};

 

typedef boost::fusion::map<

          bf::pair<tag::a, size_t>

        , bf::pair<tag::b, size_t>

        , bf::pair<tag::c, size_t> > TMyFusionMap;

 

TMyFusionMap aFusionMap(7,8,9);

 

std::cout << boost::fusion::at_key<tag::b>(aFusionMap) << std::endl; //work

std::cout << boost::bind(&boost::fusion::at_key<tag::b>, _1)(aFusionMap) << std::endl; //do not compile on msvc 8.0

std::cout << boost::bind<size_t &>(&boost::fusion::at_key<tag::b>, _1)(aFusionMap) << std::endl; //do not compile on msvc 8.0

 

 

any idear ?



Découvrez une nouvelle façon d'obtenir des réponses à toutes vos questions ! Profitez des connaissances, des opinions et des expériences des internautes sur Yahoo! Questions/Réponses.