diff --git a/include/boost/fusion/support/tag_of.hpp b/include/boost/fusion/support/tag_of.hpp index 187467c5..5df9e84a 100644 --- a/include/boost/fusion/support/tag_of.hpp +++ b/include/boost/fusion/support/tag_of.hpp @@ -50,11 +50,17 @@ namespace boost { namespace fusion namespace traits { + template + struct tag_of_fallback + { + typedef non_fusion_tag type; + }; + template struct tag_of - : mpl::if_< fusion::detail::is_mpl_sequence, - mpl::identity, - mpl::identity >::type + : mpl::eval_if< fusion::detail::is_mpl_sequence, + mpl::identity >, + tag_of_fallback >::type {}; template diff --git a/include/boost/fusion/support/tag_of_fwd.hpp b/include/boost/fusion/support/tag_of_fwd.hpp index ba434d93..dfc0e01c 100644 --- a/include/boost/fusion/support/tag_of_fwd.hpp +++ b/include/boost/fusion/support/tag_of_fwd.hpp @@ -12,6 +12,9 @@ namespace boost { namespace fusion { namespace traits { + template + struct tag_of_fallback; + template struct tag_of; }