Range-v3
Range algorithms, views, and actions for the Standard Library
 
Loading...
Searching...
No Matches
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>