Horizon
Loading...
Searching...
No Matches
Classes | Namespaces | Concepts | Typedefs | Functions | Variables
concepts.hpp File Reference
#include <range/v3/detail/config.hpp>
#include <initializer_list>
#include <type_traits>
#include <utility>
#include <meta/meta.hpp>
#include <concepts/concepts.hpp>
#include <range/v3/range_fwd.hpp>
#include <range/v3/functional/comparisons.hpp>
#include <range/v3/iterator/concepts.hpp>
#include <range/v3/iterator/traits.hpp>
#include <range/v3/range/access.hpp>
#include <range/v3/range/primitives.hpp>
#include <range/v3/range/traits.hpp>
#include <range/v3/detail/prologue.hpp>
#include <range/v3/detail/epilogue.hpp>

Go to the source code of this file.

Classes

struct  ranges::range_tag
 
struct  ranges::input_range_tag
 
struct  ranges::forward_range_tag
 
struct  ranges::bidirectional_range_tag
 
struct  ranges::random_access_range_tag
 
struct  ranges::contiguous_range_tag
 
struct  ranges::common_range_tag
 
struct  ranges::sized_range_tag
 

Namespaces

namespace  ranges::cpp20
 

Concepts

concept  ranges::_range_
 The _range_ concept.
 
concept  ranges::range
 The range concept.
 
concept  ranges::borrowed_range
 The borrowed_range concept.
 
concept  ranges::output_range_
 The output_range_ concept.
 
concept  ranges::output_range
 The output_range concept.
 
concept  ranges::input_range_
 The input_range_ concept.
 
concept  ranges::input_range
 The input_range concept.
 
concept  ranges::forward_range_
 The forward_range_ concept.
 
concept  ranges::forward_range
 The forward_range concept.
 
concept  ranges::bidirectional_range_
 The bidirectional_range_ concept.
 
concept  ranges::bidirectional_range
 The bidirectional_range concept.
 
concept  ranges::random_access_range_
 The random_access_range_ concept.
 
concept  ranges::random_access_range
 The random_access_range concept.
 
concept  ranges::contiguous_range_
 The contiguous_range_ concept.
 
concept  ranges::contiguous_range
 The contiguous_range concept.
 
concept  ranges::common_range_
 The common_range_ concept.
 
concept  ranges::common_range
 The common_range concept.
 
concept  ranges::sized_range_
 The sized_range_ concept.
 
concept  ranges::sized_range
 The sized_range concept.
 
concept  ranges::view_
 The view_ concept.
 
concept  ranges::viewable_range
 The viewable_range concept.
 

Typedefs

template<typename Rng >
using ranges::range_tag_of = std::enable_if_t< range< Rng >, meta::conditional_t< contiguous_range< Rng >, contiguous_range_tag, meta::conditional_t< random_access_range< Rng >, random_access_range_tag, meta::conditional_t< bidirectional_range< Rng >, bidirectional_range_tag, meta::conditional_t< forward_range< Rng >, forward_range_tag, meta::conditional_t< input_range< Rng >, input_range_tag, range_tag > > > > > >
 
template<typename Rng >
using ranges::common_range_tag_of = std::enable_if_t< range< Rng >, meta::conditional_t< common_range< Rng >, common_range_tag, range_tag > >
 
template<typename Rng >
using ranges::sized_range_tag_of = std::enable_if_t< range< Rng >, meta::conditional_t< sized_range< Rng >, sized_range_tag, range_tag > >
 

Functions

template<typename T >
 ranges::CPP_requires (_range_, requires(T &t)(ranges::begin(t), ranges::end(t)))
 
 ranges::template (typename T, typename V)(concept(output_range_)(T
 
 ranges::template (typename T)(concept(container_)(T)
 
template<typename T >
 ranges::CPP_requires (sized_range_, requires(T &t)(ranges::size(t)))
 

Variables

template<typename T >
CPP_concept ranges::range
 
template<typename T >
CPP_concept ranges::borrowed_range
 
template<typename R >
RANGES_INLINE_VAR constexpr bool ranges::safe_range = borrowed_range<R>
 
 ranges::V
 
 ranges::output_iterator< iterator_t< T >, V >
 
template<typename T , typename V >
CPP_concept ranges::output_range
 
 ranges::input_iterator< iterator_t< T > >
 
template<typename T >
CPP_concept ranges::input_range
 
 ranges::forward_iterator< iterator_t< T > >
 
template<typename T >
CPP_concept ranges::forward_range
 
 ranges::bidirectional_iterator< iterator_t< T > >
 
template<typename T >
CPP_concept ranges::bidirectional_range
 
 ranges::random_access_iterator< iterator_t< T > >
 
template<typename T >
CPP_concept ranges::random_access_range
 
template<typename T >
CPP_concept ranges::contiguous_range
 
 ranges::same_as< iterator_t< T >, sentinel_t< T > >
 
template<typename T >
CPP_concept ranges::common_range
 
template<typename T >
CPP_concept ranges::sized_range
 
template<typename T >
RANGES_INLINE_VAR constexpr bool ranges::enable_view
 
template<typename T >
CPP_concept ranges::view_
 
template<typename T >
CPP_concept ranges::viewable_range