Range-v3
Range algorithms, views, and actions for the Standard Library
Logical

Description

Logical operations.

Modules

 lazy
 

Typedefs

template<typename... Bs>
using meta::and_ = _t< detail::_and_< Bs... > >
 Logically AND together all the integral constant-wrapped Boolean parameters, with short-circuiting.
 
template<bool... Bs>
using meta::and_c = bool_<(true &&... &&Bs)>
 Logically AND together all the Boolean parameters.
 
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_< Args... > >
 Select one type or another depending on a compile-time Boolean.
 
template<bool If, typename... Args>
using meta::if_c = _t< detail::_if_< bool_< If >, Args... > >
 Select one type or another depending on a compile-time Boolean.
 
template<integral B>
using meta::not_ = not_c< B::type::value >
 Logically negate the integral constant-wrapped Boolean parameter.
 
template<bool B>
using meta::not_c = bool_<!B >
 Logically negate the Boolean parameter.
 
template<typename... Bs>
using meta::or_ = _t< detail::_or_< Bs... > >
 Logically OR together all the integral constant-wrapped Boolean parameters, with short-circuiting.
 
template<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<integral... Bs>
using meta::strict_or_ = or_c< Bs::type::value... >
 Logically OR together all the integral constant-wrapped Boolean parameters, without short-circuiting.
 

Variables

template<bool... Bs>
constexpr bool meta::or_v = (false || ... || Bs)
 Logically OR together all the Boolean parameters.