Range-v3 Range algorithms, views, and actions for the Standard Library |

Classes | Namespaces | Typedefs
range_traits.hpp File Reference

## Classes
struct | ranges::v3::range_cardinality< Rng, Void >

## Namespaces
| ranges
| unstable_remove have O(1) complexity for each element remove, unlike remove O(n) [for worst case] Each erased element overwritten (moved in) with last one.

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