Range-v3
Range algorithms, views, and actions for the Standard Library
concepts.hpp File Reference

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

Functions

concept() ranges::bidirectional_range_ (T)
 
concept() ranges::common_range_ (T)
 
concept() ranges::contiguous_range_ (T)
 
concept() ranges::forward_range_ (T)
 
concept() ranges::input_range_ (T)
 
concept() ranges::output_range_ (T, V)
 
concept() ranges::random_access_range_ (T)
 
concept() ranges::sized_range_ (T)
 

Variables

template<typename T >
concept ranges::_range__requires_ = CPP_REQUIRES_requires ` (T & t) ( ranges::begin(t), ranges::end(t) )
 Range concepts below.
 
concept() ranges::bidirectional_iterator< iterator_t< T > >
 
template<typename T >
concept ranges::bidirectional_range
 
template<typename T >
concept ranges::borrowed_range
 
template<typename T >
concept ranges::common_range
 
template<typename T >
concept ranges::contiguous_range
 
template<typename T >
constexpr bool ranges::enable_view
 
concept() ranges::forward_iterator< iterator_t< T > >
 
template<typename T >
concept ranges::forward_range
 
concept() ranges::input_iterator< iterator_t< T > >
 
template<typename T >
concept ranges::input_range
 
concept() ranges::output_iterator< iterator_t< T >, V >
 
template<typename T , typename V >
concept ranges::output_range
 
concept() ranges::random_access_iterator< iterator_t< T > >
 
template<typename T >
concept ranges::random_access_range
 
template<typename T >
concept ranges::range
 
template<typename R >
constexpr bool ranges::safe_range = borrowed_range<R>
 
concept() ranges::same_as< iterator_t< T >, sentinel_t< T > >
 
template<typename T >
concept ranges::sized_range
 
template<typename T >
concept ranges::sized_range__requires_ = CPP_REQUIRES_requires ` (T & t) ( ranges::size(t) )
 
template<typename T >
concept ranges::view_
 View concepts below. More...
 
template<typename T >
concept ranges::viewable_range