Range concepts
Classes | |
struct | ranges::bidirectional_range_tag |
struct | ranges::common_range_tag |
struct | ranges::contiguous_range_tag |
struct | ranges::forward_range_tag |
struct | ranges::input_range_tag |
struct | ranges::random_access_range_tag |
struct | ranges::range_tag |
struct | ranges::sized_range_tag |
Typedefs | |
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::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::sized_range_tag_of = std::enable_if_t< range< Rng >, meta::conditional_t< sized_range< Rng >, sized_range_tag, range_tag > > |
Variables | |
template<typename T > | |
concept | ranges::_range__requires_ |
Range concepts below. More... | |
template<typename T > | |
concept | ranges::bidirectional_range |
template<typename T > | |
concept | ranges::bidirectional_range__concept_ = bidirectional_iterator<iterator_t<T>> |
template<typename T > | |
concept | ranges::borrowed_range |
template<typename T > | |
concept | ranges::common_range |
template<typename T > | |
concept | ranges::common_range__concept_ = same_as<iterator_t<T>, sentinel_t<T>> |
template<typename T > | |
concept | ranges::contiguous_range |
template<typename T > | |
concept | ranges::contiguous_range__concept_ = contiguous_iterator<iterator_t<T>> && same_as<detail::data_t<T>, std::add_pointer_t<iter_reference_t<iterator_t<T>>>> |
template<typename T > | |
constexpr bool | ranges::enable_view |
template<typename T > | |
concept | ranges::forward_range |
template<typename T > | |
concept | ranges::forward_range__concept_ = forward_iterator<iterator_t<T>> |
template<typename T > | |
concept | ranges::input_range |
template<typename T > | |
concept | ranges::input_range__concept_ = input_iterator<iterator_t<T>> |
template<typename T , typename V > | |
concept | ranges::output_range |
template<typename T , typename V > | |
concept | ranges::output_range__concept_ = output_iterator<iterator_t<T>, V> |
template<typename T > | |
concept | ranges::random_access_range |
template<typename T > | |
concept | ranges::random_access_range__concept_ = random_access_iterator<iterator_t<T>> |
template<typename R > | |
constexpr bool | ranges::safe_range = borrowed_range<R> |
template<typename T > | |
concept | ranges::sized_range |
template<typename T > | |
concept | ranges::sized_range__requires_ |
template<typename T > | |
concept | ranges::view_ |
View concepts below. More... | |
template<typename T > | |
concept | ranges::viewable_range |
concept ranges::_range__requires_ |
#include <range/v3/range/concepts.hpp>
Range concepts below.
concept ranges::bidirectional_range |
#include <range/v3/range/concepts.hpp>
concept ranges::borrowed_range |
#include <range/v3/range/concepts.hpp>
concept ranges::common_range |
#include <range/v3/range/concepts.hpp>
concept ranges::contiguous_range |
#include <range/v3/range/concepts.hpp>
|
constexpr |
#include <range/v3/range/concepts.hpp>
concept ranges::forward_range |
#include <range/v3/range/concepts.hpp>
concept ranges::input_range |
#include <range/v3/range/concepts.hpp>
concept ranges::output_range |
#include <range/v3/range/concepts.hpp>
concept ranges::random_access_range |
#include <range/v3/range/concepts.hpp>
concept ranges::sized_range |
#include <range/v3/range/concepts.hpp>
concept ranges::sized_range__requires_ |
#include <range/v3/range/concepts.hpp>
concept ranges::view_ |
#include <range/v3/range/concepts.hpp>
View concepts below.
concept ranges::viewable_range |
#include <range/v3/range/concepts.hpp>