diff --git a/include/boost/mp11/function.hpp b/include/boost/mp11/function.hpp index 3a2d549..8ff66e5 100644 --- a/include/boost/mp11/function.hpp +++ b/include/boost/mp11/function.hpp @@ -87,18 +87,7 @@ template using mp_and = typename detail::mp_and_impl>: #endif // mp_all -#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 ) +#if 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 >; diff --git a/test/mp_all.cpp b/test/mp_all.cpp index 9974cfb..64c40e8 100644 --- a/test/mp_all.cpp +++ b/test/mp_all.cpp @@ -58,7 +58,12 @@ int main() BOOST_TEST_TRAIT_TRUE((std::is_same, mp_size_t<2>, mp_size_t<114>, mp_size_t<0>, mp_size_t<94>>, mp_false>)); BOOST_TEST_TRAIT_TRUE((std::is_same, mp_true>)); + +#if !BOOST_WORKAROUND( BOOST_GCC, < 40900 ) + BOOST_TEST_TRAIT_TRUE((std::is_same, mp_true>)); +#endif + return boost::report_errors(); }