From 409147714c1939e425efb6b5ecb70f14d5b23d59 Mon Sep 17 00:00:00 2001 From: Peter Dimov Date: Sat, 7 Dec 2019 19:13:02 +0200 Subject: [PATCH] Reformat mp_unique_if --- include/boost/mp11/algorithm.hpp | 40 ++++++++++++++++++++------------ 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/include/boost/mp11/algorithm.hpp b/include/boost/mp11/algorithm.hpp index e874c77..4e4ff7f 100644 --- a/include/boost/mp11/algorithm.hpp +++ b/include/boost/mp11/algorithm.hpp @@ -405,31 +405,31 @@ struct mp_take_c_impl<4, L> template class L, class T1, class T2, class T3, class T4, class T5, class... T> struct mp_take_c_impl<5, L> { - using type = L; + using type = L; }; template class L, class T1, class T2, class T3, class T4, class T5, class T6, class... T> struct mp_take_c_impl<6, L> { - using type = L; + using type = L; }; template class L, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class... T> struct mp_take_c_impl<7, L> { - using type = L; + using type = L; }; template class L, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class... T> struct mp_take_c_impl<8, L> { - using type = L; + using type = L; }; template class L, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9, class... T> struct mp_take_c_impl<9, L> { - using type = L; + using type = L; }; template class L, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9, class T10, class... T, std::size_t N> @@ -950,20 +950,30 @@ template class L, class... T> struct mp_unique_impl> template using mp_unique = typename detail::mp_unique_impl::type; -namespace detail { -template class P> struct mp_unique_if_push_back { - template struct impl; - template class L, class... Ts, class T> - struct impl, T> { - using type = mp_if...>, L, L>; - }; - template using fn = typename impl::type; +// mp_unique_if +namespace detail +{ + +template class P> struct mp_unique_if_push_back +{ + template struct impl + { + }; + + template class L, class... Ts, class T> + struct impl, T> + { + using type = mp_if...>, L, L>; + }; + + template using fn = typename impl::type; }; + } // namespace detail -// mp_unique_if -template class P> +template class P> using mp_unique_if = mp_fold_q, detail::mp_unique_if_push_back

>; + template using mp_unique_if_q = mp_unique_if; // mp_all_of