id summary reporter owner description type status milestone component version severity resolution keywords cc 6016 Specializing tag_of is ambiguous with having a fusion tag Mathias Gaunard Joel de Guzman "The way tag_of is implemented, having both a specialization of tag_of and a fusion_tag typedef is ambiguous. This is problematic because it can prevent redefining Proto expressions as other types of fusion sequences for example. testcase: {{{ #include struct my_tag {}; template struct my_type { typedef my_tag fusion_tag; }; namespace boost { namespace fusion { namespace traits { template struct tag_of< my_type > { typedef my_tag type; }; } } } int main() { boost::fusion::traits::tag_of >::type _; } }}} To solve this problem, a two-level specialization system should be provided so that specialization is preferred over SFINAE." Bugs closed To Be Determined fusion Boost Development Trunk Problem fixed