//Purpose: // Demonstrate fusion::map like template using // multiple inheritance like that described for // _Tuple_impl here: // // http://groups.google.com/group/comp.std.c++/msg/6449d909fd3d5cdc // // fusion::pair serves the same purpose as the // _Tuple_elements in the above reference. // #include #include using namespace boost; template < typename... TypePairs > struct inherit_map : TypePairs... { }; template < typename Key , typename Value > Value const& at_key( fusion::pairconst& a_pair) { return a_pair.second; } template struct ti { int v; ti(int a=-1) : v(a) {} }; template < int I > std::ostream& operator<< ( std::ostream& sout , ticonst& x ) { sout<<"ti<"<("<,ti<1> > , fusion::pair,ti<2> > , fusion::pair,ti<3> > > map_valu ; std::cout<<"at_key1="< >(map_valu)<<"\n"; std::cout<<"at_key3="< >(map_valu)<<"\n"; } int main(void) { test(); return 0; }