Logical operations.
|
template<typename... Bools> |
using | meta::and_ = _t< defer< detail::_and_< 0==sizeof...(Bools)>::template invoke, Bools... > > |
| Logically and together all the integral constant-wrapped Boolean parameters, with short-circuiting.
|
|
template<bool... Bools> |
using | meta::and_c = std::is_same< integer_sequence< bool, Bools... >, integer_sequence< bool,(Bools||true)... > > |
| Logically and together all the Boolean parameters.
|
|
template<typename... Args> |
using | meta::if_ = _t< detail::_if_< list< Args... > >> |
| Select one type or another depending on a compile-time Boolean.
|
|
template<bool If, typename... Args> |
using | meta::if_c = _t< detail::_if_< list< bool_< If >, Args... > >> |
| Select one type or another depending on a compile-time Boolean.
|
|
template<typename Bool_ > |
using | meta::not_ = not_c< Bool_::type::value > |
| Logically negate the integral constant-wrapped Boolean parameter.
|
|
template<bool Bool_> |
using | meta::not_c = bool_<!Bool_ > |
| Logically negate the Boolean parameter.
|
|
template<typename... Bools> |
using | meta::or_ = _t< defer< detail::_or_< 0==sizeof...(Bools)>::template invoke, Bools... > > |
| Logically or together all the integral constant-wrapped Boolean parameters, with short-circuiting.
|
|
template<bool... Bools> |
using | meta::or_c = not_< std::is_same< integer_sequence< bool, Bools... >, integer_sequence< bool,(Bools &&false)... > >> |
| Logically or together all the Boolean parameters.
|
|
template<typename... Bools> |
using | meta::strict_and = and_c< Bools::type::value... > |
| Logically and together all the integral constant-wrapped Boolean parameters, without doing short-circuiting.
|
|
template<typename... Bools> |
using | meta::strict_or = or_c< Bools::type::value... > |
| Logically or together all the integral constant-wrapped Boolean parameters, without doing short-circuiting.
|
|