diff --git a/include/boost/mp11/function.hpp b/include/boost/mp11/function.hpp index 8ff66e5..3a2d549 100644 --- a/include/boost/mp11/function.hpp +++ b/include/boost/mp11/function.hpp @@ -87,7 +87,18 @@ template using mp_and = typename detail::mp_and_impl>: #endif // mp_all -#if BOOST_WORKAROUND( BOOST_MSVC, <= 1910 ) || BOOST_WORKAROUND( BOOST_GCC, < 70200 ) +#if BOOST_WORKAROUND( BOOST_GCC, < 40900 ) + +namespace detail +{ + +template using mp_to_true = mp_true; + +} // namespace detail + +template using mp_all = mp_to_bool...>, mp_list...>>>; + +#elif BOOST_WORKAROUND( BOOST_MSVC, <= 1910 ) || BOOST_WORKAROUND( BOOST_GCC, < 70200 ) template using mp_all = mp_bool< mp_count_if< mp_list, mp_not >::value == 0 >;