namespace std::ranges {
template<class T>
concept viewable_range = range<T> && (borrowed_range<T> || view<remove_cvref_t<T>>);
}
概要
viewable_range
は、安全にview
へ変換できるRangeを表すコンセプトである。
Rangeアダプタを適用するには、viewable_range
である必要がある。
モデル
型T
がviewable_range
のモデルとなるのは、T
がrange
のモデルであり、かつT
がborrowed_range
のモデルであるか、remove_cvref_t<T>
がview
のモデルである場合である。
borrowed_range
またはview
ではないrange
の右辺値は、viewable_range
のモデルにはならない。
例
(執筆中)
出力
(執筆中)
バージョン
言語
- C++20
処理系
- Clang: 13.0.0
- GCC: 10.1.0
- ICC: ??
- Visual C++: 2019 Update 10