Logical operations.
More...
|
template<bool If, typename Then , typename Else = void> |
using | meta::conditional_t = typename detail::_cond< If >::template invoke< Then, Else > |
| Select one type or another depending on a compile-time Boolean.
|
|
template<typename... Args> |
using | meta::if_ = _t< detail::_if_< list< Args... > > > |
| Select one type or another depending on a compile-time Boolean.
|
|
template<bool B> |
using | meta::not_c = bool_<!B > |
| Logically negate the Boolean parameter.
|
|
template<META_TYPE_CONSTRAINT(integral) B> |
using | meta::not_ = not_c< B::type::value > |
| Logically negate the integral constant-wrapped Boolean parameter.
|
|
template<META_TYPE_CONSTRAINT(integral)... Bs> |
using | meta::strict_and_ = and_c< Bs::type::value... > |
| Logically AND together all the integral constant-wrapped Boolean parameters, without short-circuiting.
|
|
template<typename... Bs> |
using | meta::and_ = _t< defer< detail::_and_< 0==sizeof...(Bs)>::template invoke, Bs... > > |
| Logically AND together all the integral constant-wrapped Boolean parameters, with short-circuiting.
|
|
template<META_TYPE_CONSTRAINT(integral)... Bs> |
using | meta::strict_or_ = or_c< Bs::type::value... > |
| Logically OR together all the integral constant-wrapped Boolean parameters, without short-circuiting.
|
|
template<typename... Bs> |
using | meta::or_ = _t< defer< detail::_or_< 0==sizeof...(Bs)>::template invoke, Bs... > > |
| Logically OR together all the integral constant-wrapped Boolean parameters, with short-circuiting.
|
|
Logical operations.