1
0
forked from boostorg/mp11

Try a g++ 4.7/4.8 workaround

This commit is contained in:
Peter Dimov
2017-05-31 08:40:41 +03:00
parent a47c6e3c57
commit 5733185780

View File

@@ -87,7 +87,18 @@ template<class... T> using mp_and = typename detail::mp_and_impl<mp_list<T...>>:
#endif #endif
// mp_all<T...> // mp_all<T...>
#if BOOST_WORKAROUND( BOOST_MSVC, <= 1910 ) || BOOST_WORKAROUND( BOOST_GCC, < 70200 ) #if BOOST_WORKAROUND( BOOST_GCC, < 40900 )
namespace detail
{
template<class T> using mp_to_true = mp_true;
} // namespace detail
template<class... T> using mp_all = mp_to_bool<std::is_same<mp_list<mp_to_bool<T>...>, mp_list<detail::mp_to_true<T>...>>>;
#elif BOOST_WORKAROUND( BOOST_MSVC, <= 1910 ) || BOOST_WORKAROUND( BOOST_GCC, < 70200 )
template<class... T> using mp_all = mp_bool< mp_count_if< mp_list<T...>, mp_not >::value == 0 >; template<class... T> using mp_all = mp_bool< mp_count_if< mp_list<T...>, mp_not >::value == 0 >;