- ranges[meta header]
- concept[meta id-type]
- cpp20[meta cpp]
template<class R>
concept simple-view = // 説明専用コンセプト
view<R> && range<const R> &&
same_as<iterator_t<R>, iterator_t<const R>> &&
same_as<sentinel_t<R>, sentinel_t<const R>>;- same_as[link /reference/concepts/same_as.md]
- view[link view.md]
- range[link range.md]
- iterator_t[link iterator_t.md]
- sentinel_t[link sentinel_t.md]
simple-viewは型Rが単純(Rはconstであっても Range である(const-iterableである)上で、Rが使用するイテレータ/センチネルと読み取り専用のイテレータ/センチネルが同じ型である)となるビューな Range を表す説明専用コンセプトである。
const-iterableが要件にあることは、const-iterableではない Range は内部でキャッシュ等の複雑度が高い仕様となることで、const-iterableでは無くならざるを得なくなることが背景であると考えられる。const-iterableでないビューとしては、ranges::filter_viewなどが挙げられる。
- C++20
- Clang: ??
- GCC: ??
- ICC: ??
- Visual C++: ??