Implemented ability to set fallback for tag_of (#263)

This commit is contained in:
Denis Mikhailov
2022-12-22 06:16:10 +06:00
committed by GitHub
parent 0a2da9d0ac
commit d6298309fb
3 changed files with 58 additions and 1 deletions

8
include/boost/fusion/support/tag_of.hpp Normal file → Executable file
View File

@ -48,11 +48,17 @@ namespace boost { namespace fusion
{
BOOST_MPL_HAS_XXX_TRAIT_DEF(fusion_tag)
template<typename Sequence, typename Active=void>
struct tag_of_fallback
{
typedef non_fusion_tag type;
};
template <typename Sequence, typename Active>
struct tag_of_impl
: mpl::if_<fusion::detail::is_mpl_sequence<Sequence>,
mpl::identity<mpl_sequence_tag>,
mpl::identity<non_fusion_tag> >::type
mpl::identity<typename tag_of_fallback<Sequence>::type> >::type
{};
template <typename Sequence>