名前空間
変種
操作

std::ranges::borrowed_iterator_t, std::ranges::borrowed_subrange_t

From cppreference.com
< cpp‎ | ranges
 
 
Rangesライブラリ
Rangeアダプタ
 
ヘッダ <ranges> で定義
template< ranges::range R >
using borrowed_iterator_t = /* 以下参照 */;
(1) (C++20以降)
template< ranges::range R >
using borrowed_subrange_t = /* 以下参照 */;
(2) (C++20以降)
1) std::ranges::iterator_t<R>。ただし、Rborrowed_range をモデルとする場合は、それ以外は std::ranges::dangling
2) std::ranges::subrange<std::ranges::iterator_t<R>>。ただし、Rborrowed_range をモデルとする場合は、それ以外は std::ranges::dangling

これらの2つのエイリアステンプレートは、一部の 制約付きアルゴリズム が、ぶら下がった(dangling)イテレータやビューを返す可能性を回避するために使用されます。

[編集] 実装の可能性

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

[編集] 関連項目

イテレータや subrange がダングリングになるため返されるべきでないことを示すプレースホルダー型
(クラス) [編集]
English 日本語 中文(简体) 中文(繁體)