Add mp_eval_if_not

This commit is contained in:
Peter Dimov
2019-02-14 19:57:04 +02:00
parent b83b203cbc
commit beb9c2dd59
3 changed files with 52 additions and 0 deletions
+4
View File
@@ -147,6 +147,10 @@ template<bool C, class T, template<class...> class F, class... U> using mp_eval_
template<class C, class T, template<class...> class F, class... U> using mp_eval_if = typename detail::mp_eval_if_c_impl<static_cast<bool>(C::value), T, F, U...>::type;
template<class C, class T, class Q, class... U> using mp_eval_if_q = typename detail::mp_eval_if_c_impl<static_cast<bool>(C::value), T, Q::template fn, U...>::type;
// mp_eval_if_not
template<class C, class T, template<class...> class F, class... U> using mp_eval_if_not = mp_eval_if<mp_not<C>, T, F, U...>;
template<class C, class T, class Q, class... U> using mp_eval_if_not_q = mp_eval_if<mp_not<C>, T, Q::template fn, U...>;
// mp_cond
// so elegant; so doesn't work