diff --git a/include/boost/mp11/set.hpp b/include/boost/mp11/set.hpp index f8c2f26..d65e4ae 100644 --- a/include/boost/mp11/set.hpp +++ b/include/boost/mp11/set.hpp @@ -10,6 +10,7 @@ #include #include +#include #include #include #include @@ -95,6 +96,8 @@ template using mp_set_push_front = typename detail::mp_set_ namespace detail { +#if !BOOST_MP11_WORKAROUND( BOOST_MP11_MSVC, < 1900 ) + struct mp_is_set_helper_start { static constexpr bool value = true; @@ -119,6 +122,20 @@ template class L, class... T> struct mp_is_set_impl> using type = mp_bool, detail::mp_is_set_helper_start, detail::mp_is_set_helper>::value>; }; +#else + +template struct mp_is_set_impl +{ + using type = mp_false; +}; + +template class L, class... T> struct mp_is_set_impl> +{ + using type = mp_to_bool, mp_set_push_back, T...> > >; +}; + +#endif // !BOOST_MP11_WORKAROUND( BOOST_MP11_MSVC, < 1900 ) + } // namespace detail template using mp_is_set = typename detail::mp_is_set_impl::type;