namespace std::ranges {
template<class T>
concept common_range = range<T> && same_as<iterator_t<T>, sentinel_t<T>>;
}
概要
common_range
は、イテレータと番兵の型が等しいRangeを表すコンセプトである。
標準のコンテナはすべてcommon_range
のモデルである。
モデル
型T
がcommon_range
のモデルとなるのは、T
がrange
のモデルであり、T
から取得した番兵とイテレータの型が等しい場合である。
例
(執筆中)
出力
(執筆中)
バージョン
言語
- C++20
処理系
- Clang: 13.0.0 ✅
- GCC: 10.1.0 ✅
- ICC: ??
- Visual C++: 2019 Update 10 ✅
関連項目
- C++17 範囲 for ループの制限緩和
範囲for文は、C++17の時点で先行してcommon_range
ではない範囲を扱えるようになっている views::common
任意の範囲をcommon_range
に変換するRangeアダプタオブジェクト