A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://en.cppreference.com/w/cpp/ranges/../algorithm/ranges/../../ranges/borrowed_iterator_t.html below:

std::ranges::borrowed_iterator_t, std::ranges::borrowed_subrange_t - cppreference.com

C++ Compiler support Freestanding and hosted Language Standard library Standard library headers Named requirements Feature test macros (C++20) Language support library Concepts library (C++20) Diagnostics library Memory management library Metaprogramming library (C++11) General utilities library Containers library Iterators library Ranges library (C++20) Algorithms library Strings library Text processing library Numerics library Date and time library Input/output library Filesystem library (C++17) Concurrency support library (C++11) Execution control library (C++26) Technical specifications Symbols index External libraries [edit] Ranges library Range access begin cbegin end cend rbegin crbegin rend crend size ssize data cdata reserve_hint

(C++26)  

empty

Range conversions std::from_range_t
std::from_range

(C++23)(C++23)    

to

(C++23)


Dangling iterator handling dangling

borrowed_iterator_t

borrowed_subrange_t


Range primitives range_size_trange_difference_trange_value_t elements_of

(C++23)    

iterator_tconst_iterator_tsentinel_tconst_sentinel_t

(C++23)(C++23)  

range_reference_trange_const_reference_trange_rvalue_reference_trange_common_reference_t

(C++23)

Range concepts range borrowed_range common_range sized_range viewable_range view input_range output_range forward_range bidirectional_range random_access_range contiguous_range approximately_sized_range

(C++26)

constant_range

(C++23)


Views view_interface subrange Range factories empty_viewviews::empty single_viewviews::single basic_istream_viewviews::istream iota_viewviews::iota repeat_viewviews::repeat

(C++23)(C++23)

Range adaptors views::all_tviews::all as_rvalue_viewviews::as_rvalue

(C++23)(C++23)  

filter_viewviews::filter transform_viewviews::transform take_viewviews::take take_while_viewviews::take_while common_viewviews::common views::counted to_input_viewviews::to_input

(C++26)(C++26)

ref_view drop_viewviews::drop drop_while_viewviews::drop_while lazy_split_viewviews::lazy_split split_viewviews::split join_viewviews::join join_with_viewviews::join_with

(C++23)(C++23)  

concat_viewviews::concat

(C++26)(C++26)

cache_latest_viewviews::cache_latest

(C++26)(C++26)  

owning_view reverse_viewviews::reverse as_const_viewviews::as_const

(C++23)(C++23)

elements_viewviews::elements keys_viewviews::keys values_viewviews::values enumerate_viewviews::enumerate

(C++23)(C++23)

zip_viewviews::zip

(C++23)(C++23)

zip_transform_viewviews::zip_transform

(C++23)(C++23)  

adjacent_viewviews::adjacent

(C++23)(C++23)

views::pairwise

(C++23)

adjacent_transform_viewviews::adjacent_transform

(C++23)(C++23)

views::pairwise_transform

(C++23)

chunk_viewviews::chunk

(C++23)(C++23)

slide_viewviews::slide

(C++23)(C++23)

chunk_by_viewviews::chunk_by

(C++23)(C++23)

stride_viewviews::stride

(C++23)(C++23)

cartesian_product_viewviews::cartesian_product

(C++23)(C++23)


Range generators std::generator

(C++23)    

Range adaptor closure objects range_adaptor_closure

(C++23)    

Range adaptor objects
Helper items copyable-box
movable-box

(until C++23)  (C++23)

simple-view non-propagating-cache

[edit]

Defined in header

<ranges> template< ranges::range R >
using borrowed_iterator_t = /* see below */;
(1) (since C++20) template< ranges::range R >
using borrowed_subrange_t = /* see below */;
(2) (since C++20) 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.

[edit] Possible implementation borrowed_iterator_t
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>;
borrowed_subrange_t
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>;
[edit] 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) [edit]

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4