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

Modules | Typedefs | Variables
Logical
Meta

## 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.