table of contents
        
      
      
    - Tumbleweed 2024.07.05-1.3
 - Leap-16.0
 - Leap-15.6
 
| std::ranges::borrowed_iterator_t,std::ranges::borrowed_subrange_t(3) | C++ Standard Libary | std::ranges::borrowed_iterator_t,std::ranges::borrowed_subrange_t(3) | 
NAME¶
std::ranges::borrowed_iterator_t,std::ranges::borrowed_subrange_t - std::ranges::borrowed_iterator_t,std::ranges::borrowed_subrange_t
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> if R models borrowed_range,
    std::ranges::dangling
  
   otherwise.
  
   2) std::ranges::subrange<std::ranges::iterator_t<R>> if R models
    borrowed_range,
  
   std::ranges::dangling otherwise.
  
   These two alias templates are used by some constrained algorithms to avoid
    returning
  
   potentially dangling iterators or views.
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 a placeholder type indicating that an iterator
    or a subrange should
  
   (C++20) not be returned since it would be dangling
  
   (class)
| 2024.06.10 | http://cppreference.com |