diff --git a/include/boost/mp11/function.hpp b/include/boost/mp11/function.hpp index 9821f1d..559ac67 100644 --- a/include/boost/mp11/function.hpp +++ b/include/boost/mp11/function.hpp @@ -33,8 +33,7 @@ template struct mp_void_impl template using mp_void = typename detail::mp_void_impl::type; -// mp_and, mp_all - +// mp_and #if BOOST_WORKAROUND( BOOST_MSVC, < 1910 ) namespace detail @@ -66,8 +65,6 @@ template struct mp_and_impl } // namespace detail -template using mp_all = mp_bool< mp_count_if< mp_list, mp_to_bool >::value == sizeof...(T) >; - #else namespace detail @@ -86,7 +83,17 @@ template struct mp_and_impl< mp_list, mp_void.. } // namespace detail template using mp_and = typename detail::mp_and_impl>::type; -template using mp_all = typename detail::mp_and_impl>::type; + +#endif + +// mp_all +#if BOOST_WORKAROUND( BOOST_MSVC, <= 1910 ) + +template using mp_all = mp_bool< mp_count_if< mp_list, mp_to_bool >::value == sizeof...(T) >; + +#else + +template using mp_all = mp_and...>; #endif