diff --git a/include/boost/mp11/function.hpp b/include/boost/mp11/function.hpp index f1c11b4..8e1114a 100644 --- a/include/boost/mp11/function.hpp +++ b/include/boost/mp11/function.hpp @@ -80,7 +80,8 @@ template using mp_and = typename detail::mp_and_impl>: #endif // mp_all -#if BOOST_MP11_WORKAROUND( BOOST_MP11_MSVC, < 1920 ) || BOOST_MP11_WORKAROUND( BOOST_MP11_GCC, < 100000 ) +// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86355 +#if BOOST_MP11_WORKAROUND( BOOST_MP11_MSVC, < 1920 ) || BOOST_MP11_WORKAROUND( BOOST_MP11_GCC, != 0 ) template using mp_all = mp_bool< mp_count_if< mp_list, mp_not >::value == 0 >; @@ -125,7 +126,8 @@ template struct mp_or_impl } // namespace detail // mp_any -#if defined( BOOST_MP11_HAS_FOLD_EXPRESSIONS ) && !BOOST_MP11_WORKAROUND( BOOST_MP11_GCC, < 100000 ) && !BOOST_MP11_WORKAROUND( BOOST_MP11_MSVC, < 1920 ) +// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86356 +#if defined( BOOST_MP11_HAS_FOLD_EXPRESSIONS ) && !BOOST_MP11_WORKAROUND( BOOST_MP11_GCC, != 0 ) && !BOOST_MP11_WORKAROUND( BOOST_MP11_MSVC, < 1920 ) template using mp_any = mp_bool<(static_cast(T::value) || ...)>;