38 template<
typename Type>
42 template<
typename Key,
typename TailType,
typename Function>
48 typedef multi_type_map<Key, type_list_type> map_type;
49 typedef typename map_type::template iterator<Type>::type iterator_type;
51 iterator_type it( m.template begin<Type>() );
52 const iterator_type eit( m.template end<Type>() );
56 iterator_type current(it);
58 f(current->first, current->second);
69 template<
typename Key,
typename TypeList>
70 class multi_type_map_visitor_rec;
76 template<
typename Key>
80 template<
typename Function>
81 void execute( multi_type_map<Key, claw::meta::no_type>& vars, Function f )
93 template<
typename KeyType,
typename HeadType,
typename TailType>
94 class multi_type_map_visitor_rec
98 template<
typename Function>
104 multi_type_map_visitor_rec<KeyType, TailType> rec_call;
106 process.execute( m, f );
107 rec_call.execute( m, f );
120 template<
typename Key,
typename TypeList,
typename Function>
122 ( multi_type_map<Key, TypeList>& m, Function f )
const
124 multi_type_map_visitor_rec<Key, TypeList> rec_call;
125 rec_call.execute( m, f );