Hi there, I think I was wrong when I was using a map. Instead I should have presented my code using a vector. Here is another try to explain in what I'm looking for. Image a 2D matrix of types. Meaning a vector of types vectors. Like: namespace fields { struct id {}; struct name {}; struct address {}; struct birthday {}; } namespace tags { struct pri {}; struct val {}; } typedef fusion::vector<fields::id, tags::pri> primary_key_t; typedef fusion::vector<fields::name, tags::val> name_field_t; typedef fusion::vector<fields::name, tags::val> address_field_t; typedef fusion::vector<fields::name, tags::val> birthday__field_t; typedef fusion::vector< primary_key_t , name_field_t , address_field_t , birthday__field_t > table; My question is how can I find the type vector that contains a certain type, like for example tags::pri? Is such functionality supported by either fusion or mpl? Thanks again, Christian