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

Classes

struct  ranges::v3::range_cardinality< Rng, Void >
 

Typedefs

template<typename Rng >
using ranges::v3::iterator_t = concepts::Range::iterator_t< Rng >
 
template<typename Rng >
using ranges::v3::range_category_t = concepts::InputRange::category_t< Rng >
 
template<typename Rng >
using ranges::v3::range_common_iterator_t = common_iterator_t< iterator_t< Rng >, sentinel_t< Rng > >
 
template<typename Rng >
using ranges::v3::range_common_reference_t = concepts::InputRange::common_reference_t< Rng >
 
template<typename Rng >
using ranges::v3::range_difference_type_t = concepts::Range::difference_t< Rng >
 
template<typename Rng >
using ranges::v3::range_reference_t = concepts::InputRange::reference_t< Rng >
 
template<typename Rng >
using ranges::v3::range_rvalue_reference_t = concepts::InputRange::rvalue_reference_t< Rng >
 
template<typename Rng >
using ranges::v3::range_size_type_t = meta::_t< std::make_unsigned< range_difference_type_t< Rng > >>
 
template<typename Rng >
using ranges::v3::range_value_type_t = concepts::InputRange::value_t< Rng >
 
template<typename Rng >
using ranges::v3::safe_iterator_t = meta::if_< std::is_lvalue_reference< Rng >, meta::if_< Range< Rng >, iterator_t< Rng > >, dangling< iterator_t< Rng > >>
 
template<typename Rng >
using ranges::v3::sentinel_t = concepts::Range::sentinel_t< Rng >