diff --git a/include/boost/mp11/function.hpp b/include/boost/mp11/function.hpp index 6def486..8ff66e5 100644 --- a/include/boost/mp11/function.hpp +++ b/include/boost/mp11/function.hpp @@ -87,9 +87,9 @@ template using mp_and = typename detail::mp_and_impl>: #endif // mp_all -#if BOOST_WORKAROUND( BOOST_MSVC, <= 1910 ) || BOOST_WORKAROUND( BOOST_GCC, < 70000 ) +#if BOOST_WORKAROUND( BOOST_MSVC, <= 1910 ) || BOOST_WORKAROUND( BOOST_GCC, < 70200 ) -template using mp_all = mp_bool< mp_count_if< mp_list, mp_to_bool >::value == sizeof...(T) >; +template using mp_all = mp_bool< mp_count_if< mp_list, mp_not >::value == 0 >; #elif defined( BOOST_MP11_HAS_FOLD_EXPRESSIONS ) @@ -132,7 +132,7 @@ template struct mp_or_impl } // namespace detail // mp_any -#if defined( BOOST_MP11_HAS_FOLD_EXPRESSIONS ) && !BOOST_WORKAROUND( BOOST_GCC, < 70000 ) +#if defined( BOOST_MP11_HAS_FOLD_EXPRESSIONS ) && !BOOST_WORKAROUND( BOOST_GCC, < 70200 ) template using mp_any = mp_bool<(static_cast(T::value) || ...)>;