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

Classes | Namespaces | Typedefs | Functions | Variables
concepts.hpp File Reference

## Classes
struct | concepts::detail::ignore
struct | concepts::detail::Nil
struct | concepts::detail::tag<... >
struct | concepts::return_t_< typename >

## Namespaces
| concepts
| INTERNAL ONLY.

## Typedefs
template<bool B>
using | concepts::bool_ = std::integral_constant< bool, B >
template<typename T , typename EnableIf >
using | concepts::return_t = meta::invoke< return_t_< EnableIf >, T >
using | concepts::detail::xNil = Nil

## Functions
constexpr bool | concepts::detail::CPP_true_fn (Nil)
template<typename >
constexpr bool | concepts::detail::requires_ ()
template<bool B>
std::enable_if_t< B > | concepts::requires_ ()
template<class >
constexpr bool | concepts::detail::true_ ()

## Variables
template<bool... Bs>
constexpr bool | concepts::and_v = (Bs &&...)
template<typename T , typename U >
concept | concepts::assignable_from__requires_
template<typename T >
concept | concepts::detail::boolean_testable_frag__requires_
template<typename T >
concept | concepts::detail::boolean_testable_impl_ = convertible_to<T, bool>
template<typename T , typename U >
concept | concepts::common_reference_with
template<typename T , typename U >
concept | concepts::common_reference_with__concept_ = same_as<common_reference_t<T, U>, common_reference_t<U, T>> && convertible_to<T, common_reference_t<T, U>> && convertible_to<U, common_reference_t<T, U>>
template<typename T , typename U >
concept | concepts::common_with
template<typename T , typename U >
concept | concepts::common_with__concept_ = same_as<common_type_t<T, U>, common_type_t<U, T>> && convertible_to<T, common_type_t<T, U>> && convertible_to<U, common_type_t<T, U>> && common_reference_with< std::add_lvalue_reference_t<T const>, std::add_lvalue_reference_t<U const>> && common_reference_with< std::add_lvalue_reference_t<common_type_t<T, U>>, common_reference_t< std::add_lvalue_reference_t<T const>, std::add_lvalue_reference_t<U const>>>
template<typename T , typename... Args>
concept | concepts::constructible_from
template<typename From , typename To >
concept | concepts::convertible_to
template<typename T >
concept | concepts::copy_assignable__concept_ = assignable_from<T &, T const &>
template<typename T >
concept | concepts::copy_constructible
template<typename T >
concept | concepts::copy_constructible__concept_ = constructible_from<T, T &> && constructible_from<T, T const &> && constructible_from<T, T const> && convertible_to<T &, T> && convertible_to<T const &, T> && convertible_to<T const, T>
template<typename T >
concept | concepts::copyable
template<typename T >
concept | concepts::default_constructible
template<typename T , typename U >
concept | concepts::derived_from
template<typename T , typename U >
concept | concepts::derived_from__concept_ = convertible_to<T const volatile *, U const volatile *>
template<typename T >
concept | concepts::destructible
template<typename T >
concept | concepts::equality_comparable
template<typename T , typename U >
concept | concepts::equality_comparable_with
template<typename T , typename U >
concept | concepts::equality_comparable_with__concept_ = equality_comparable< common_reference_t<detail::as_cref_t<T>, detail::as_cref_t<U>>>
template<typename T >
constexpr T | concepts::detail::instance_ = T{}
template<typename T >
concept | concepts::integral
template<bool B>
concept | concepts::is_true = B
template<typename T >
concept | concepts::movable
template<typename T >
concept | concepts::move_assignable__concept_ = assignable_from<T &, T>
template<typename T >
concept | concepts::move_constructible
template<bool... Bs>
constexpr bool | concepts::or_v = (Bs ||...)
template<typename T , typename U >
concept | concepts::detail::partially_ordered_with_frag__requires_
template<typename T >
concept | concepts::regular
template<typename A , typename B >
concept | concepts::same_as
template<class T , template< typename... > class Trait, typename... Args>
concept | concepts::satisfies
template<typename T >
concept | concepts::semiregular
template<typename T >
concept | concepts::signed_integral
template<typename T >
concept | concepts::swappable__requires_
template<typename T , typename U >
concept | concepts::swappable_with__requires_
template<typename T >
concept | concepts::totally_ordered
template<typename T , typename U >
concept | concepts::totally_ordered_with
template<typename T , typename U >
concept | concepts::totally_ordered_with__concept_ = totally_ordered< common_reference_t< detail::as_cref_t<T>, detail::as_cref_t<U>>> && detail::partially_ordered_with_<T, U>
template<typename... Args>
concept | concepts::type = true
template<typename T >
concept | concepts::unsigned_integral
template<typename T , typename U >
concept | concepts::detail::weakly_equality_comparable_with_frag__requires_

## Variable Documentation

## ◆ boolean_testable_frag__requires_

template<typename T >

concept concepts::detail::boolean_testable_frag__requires_

Initial value:
= CPP_REQUIRES_requires `(T && t)
template<typename T>
concept boolean_testable_ =
boolean_testable_frag__requires_<T> &&
boolean_testable_impl_<T>

## ◆ partially_ordered_with_frag__requires_

template<typename T , typename U >

concept concepts::detail::partially_ordered_with_frag__requires_

Initial value:
= CPP_REQUIRES_requires `(detail::as_cref_t<T>& t, detail::as_cref_t<U>& u)
template<typename T, typename U>
concept partially_ordered_with_ =
partially_ordered_with_frag__requires_<T, U>

## ◆ weakly_equality_comparable_with_frag__requires_

template<typename T , typename U >

concept concepts::detail::weakly_equality_comparable_with_frag__requires_

Initial value:
= CPP_REQUIRES_requires `(detail::as_cref_t<T> t, detail::as_cref_t<U> u)
template<typename T, typename U>
concept weakly_equality_comparable_with_ =
weakly_equality_comparable_with_frag__requires_<T, U>