std::ranges::SizedRange,std::ranges::disable_sized_range (3) - Linux Manuals
std::ranges::SizedRange,std::ranges::disable_sized_range: std::ranges::SizedRange,std::ranges::disable_sized_range
Command to display std::ranges::SizedRange,std::ranges::disable_sized_range
manual in Linux: $ man 3 std::ranges::SizedRange,std::ranges::disable_sized_range
NAME
std::ranges::SizedRange,std::ranges::disable_sized_range - std::ranges::SizedRange,std::ranges::disable_sized_range
Synopsis
Defined in header <ranges>
template< class T >
concept SizedRange = Range<T> &&
! disable_sized_range<std::remove_cvref_t<T>> && (1)
requires(T& t) {
ranges::size(t);
};
template<class> (2)
inline constexpr bool disable_sized_range = false;
1) The SizedRange concept specifies the requirements of a Range type that knows its size in constant time with the size function.
Formally, given an lvalue t of type std::remove_reference_t<T>, T models SizedRange only if
* ranges::size(t)
* has non-amortized constant-time complexity,
* does not modify t, and
* is equal to ranges::distance(t), and
* if iterator_t<T> models ForwardIterator, ranges::size(t) is well-defined regardless of the evaluation of ranges::begin(t) (in other words, a single-pass sized range may support a call to size only before the first call to begin, but a forward range must support size at all times)
2) disable_sized_range exists to allows use of range types that satisfy but do not in fact model SizedRange.
Pages related to std::ranges::SizedRange,std::ranges::disable_sized_range
- std::ranges::BidirectionalRange (3) - std::ranges::BidirectionalRange
- std::ranges::CommonRange (3) - std::ranges::CommonRange
- std::ranges::ContiguousRange (3) - std::ranges::ContiguousRange
- std::ranges::ForwardRange (3) - std::ranges::ForwardRange
- std::ranges::InputRange (3) - std::ranges::InputRange
- std::ranges::OutputRange (3) - std::ranges::OutputRange
- std::ranges::RandomAccessRange (3) - std::ranges::RandomAccessRange
- std::ranges::Range (3) - std::ranges::Range
- std::ranges::View,std::ranges::enable_view,std::ranges::view_base (3) - std::ranges::View,std::ranges::enable_view,std::ranges::view_base
- std::ranges::ViewableRange (3) - std::ranges::ViewableRange
- std::ranges::all_of,std::ranges::any_of,std::ranges::none_of (3) - std::ranges::all_of,std::ranges::any_of,std::ranges::none_of
- std::ranges::begin,std::ranges::cbegin (3) - std::ranges::begin,std::ranges::cbegin
- std::ranges::dangling (3) - std::ranges::dangling
- std::ranges::equal_to (3) - std::ranges::equal_to
- std::ranges::greater (3) - std::ranges::greater
- std::ranges::greater_equal (3) - std::ranges::greater_equal
- std::ranges::iterator_t,std::ranges::sentinel_t (3) - std::ranges::iterator_t,std::ranges::sentinel_t