diff --git a/include/boost/mp11/algorithm.hpp b/include/boost/mp11/algorithm.hpp index 8f802440..0f074477 100644 --- a/include/boost/mp11/algorithm.hpp +++ b/include/boost/mp11/algorithm.hpp @@ -719,37 +719,7 @@ namespace detail template struct mp_find_impl; -#if BOOST_MP11_CLANG && defined( BOOST_MP11_HAS_FOLD_EXPRESSIONS ) - -struct mp_index_holder -{ - std::size_t i_; - bool f_; -}; - -constexpr inline mp_index_holder operator+( mp_index_holder const & v, bool f ) -{ - if( v.f_ ) - { - return v; - } - else if( f ) - { - return { v.i_, true }; - } - else - { - return { v.i_ + 1, false }; - } -} - -template class L, class... T, class V> struct mp_find_impl, V> -{ - static constexpr mp_index_holder _v{ 0, false }; - using type = mp_size_t< (_v + ... + std::is_same::value).i_ >; -}; - -#elif !defined( BOOST_MP11_NO_CONSTEXPR ) +#if !defined( BOOST_MP11_NO_CONSTEXPR ) template class L, class V> struct mp_find_impl, V> { @@ -828,15 +798,7 @@ namespace detail template class P> struct mp_find_if_impl; -#if BOOST_MP11_CLANG && defined( BOOST_MP11_HAS_FOLD_EXPRESSIONS ) - -template class L, class... T, template class P> struct mp_find_if_impl, P> -{ - static constexpr mp_index_holder _v{ 0, false }; - using type = mp_size_t< (_v + ... + P::value).i_ >; -}; - -#elif !defined( BOOST_MP11_NO_CONSTEXPR ) +#if !defined( BOOST_MP11_NO_CONSTEXPR ) template class L, template class P> struct mp_find_if_impl, P> {