std::ranges...d_subrange_t(3)
πΈ NAME πΈ
okay so bestie, this is the std::ranges...d_subrange_t(3) page from the C++ Standard Libary, and itβs literally about std::ranges::borrowed_iterator_t and std::ranges::borrowed_subrange_t π¦. The NAME line goes: std::ranges::borrowed_iterator_t,std::ranges::borrowed_subrange_t - std::ranges::borrowed_iterator_t,std::ranges::borrowed_subrange_t β yes, it said it twice, main character energy β¨.
π¦ Synopsis π¦
Defined in header <ranges>
template< ranges::range R > (1) (since C++20)
using borrowed_iterator_t = /* see below */;
template< ranges::range R > (2) (since C++20)
using borrowed_subrange_t = /* see below */;
(1)βstd::ranges::iterator_t<R>ifRmodelsborrowed_range,std::ranges::danglingotherwise.(2)βstd::ranges::subrange<std::ranges::iterator_t<R>>ifRmodelsborrowed_range,std::ranges::danglingotherwise.
These two alias templates are used by some constrained algorithms to avoid returning potentially dangling iterators or views. no cap, theyβre literally the βdonβt hand out a dangling vibeβ safety squad π .
π Possible implementation π
First version
template< std::ranges::range R >
using borrowed_iterator_t =
std::conditional_t<std::ranges::borrowed_range<R>,
std::ranges::iterator_t<R>, std::ranges::dangling>;
Second version
template< std::ranges::range R >
using borrowed_subrange_t =
std::conditional_t<std::ranges::borrowed_range<R>,
std::ranges::subrange<std::ranges::iterator_t<R>>,
std::ranges::dangling>;
π₯ See also π₯
ranges::dangling(C++20) β a placeholder type indicating that an iterator or a subrange should not be returned since it would be dangling (class).
mwah π thatβs the whole page, bestie β source is http://cppreference.com, and the version/date is 2024.06.10. stay iconic and please do not return dangling iterators, periodt β¨π
π¦ where this page comes from
- nixpkgs unstable: stdman 2024.07.05
- opensuse-leap 16.0: stdman 2024.07.05-bp160.1.9 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms