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.