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

Classes

struct  ranges::basic_view< cardinality >
 
struct  ranges::begin_tag
 
struct  ranges::copy_tag
 
struct  ranges::end_tag
 
struct  ranges::move_tag
 
struct  ranges::view_base
 

Typedefs

template<typename Rng >
using ranges::is_finite = meta::bool_< range_cardinality< Rng >::value >=finite >
 
template<typename Rng >
using ranges::is_infinite = meta::bool_< range_cardinality< Rng >::value==infinite >
 
template<typename Rng >
using ranges::keys_range_view = transform_view< Rng, detail::get_first >
 
template<typename I >
using ranges::move_into_iterator = basic_iterator< detail::move_into_cursor< I > >
 
template<typename T >
using ranges::readable_traits = indirectly_readable_traits< T >
 
template<typename Rng , typename Pred , typename Val >
using ranges::replace_if_view = iter_transform_view< Rng, detail::replacer_if_fn< Pred, Val > >
 
template<typename Rng , typename Val1 , typename Val2 >
using ranges::replace_view = iter_transform_view< Rng, detail::replacer_fn< Val1, Val2 > >
 
template<typename I >
using ranges::reverse_iterator = basic_iterator< detail::reverse_cursor< I > >
 
template<typename Rng >
using ranges::take_exactly_view = detail::take_exactly_view_< Rng >
 
template<typename T >
using ranges::uncvref_t = meta::_t< std::remove_cv< meta::_t< std::remove_reference< T > > > >
 
template<typename Rng >
using ranges::unique_view = adjacent_filter_view< Rng, logical_negate< equal_to > >
 
template<typename Rng >
using ranges::values_view = transform_view< Rng, detail::get_second >
 

Enumerations

enum  cardinality : std::ptrdiff_t { infinite = -3 , unknown = -2 , finite = -1 }
 

Variables

template<typename S , typename I >
constexpr bool ranges::disable_sized_sentinel = false
 
template<typename R >
constexpr bool ranges::enable_borrowed_range = false
 
template<typename R >
constexpr bool ranges::detail::enable_safe_range = enable_borrowed_range<R>