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,,