Namespaces
Variants

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

ja.cppreference.net より
 
 
範囲ライブラリ
範囲アダプタ
 
ヘッダ <ranges>
template< ranges::range R >
using borrowed_iterator_t = /* see below */;
で定義 (1) (C++20以上)
template< ranges::range R >
using borrowed_subrange_t = /* see below */;
(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つのエイリアステンプレートは、いくつかの制約付きアルゴリズムで、潜在的に宙吊りになるイテレータやビューを返さないようにするために使用されます。

実装例

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 がダングリング状態となるため返すべきではないことを示すプレースホルダ型
(クラス)