std::ranges::common_view<V>::end
From cppreference.com
< cpp | ranges | common view
| constexpr auto end() requires (!/*simple-view*/<V>); |
(1) | (C++20以降) |
| constexpr auto end() const requires ranges::range<const V>; |
(2) | (C++20以降) |
1)
common_view の末尾を表すイテレータを返します。具体的には、- ranges::begin(
base_) + ranges::distance(base_)、ここで ranges::random_access_range<V> および ranges::sized_range<V> が満たされる場合。 - std::common_iterator<ranges::iterator_t<V>, ranges::sentinel_t<V>>(ranges::end(
base_)) それ以外の場合。
2) (1) と同じですが、
V は const 修飾されています。目次 |
[編集] 戻り値
基になるビューの末尾を表すイテレータ。
[編集] 例
このコードを実行
#include <iostream> #include <numeric> #include <ranges> int main() { constexpr int n{4}; constexpr auto v1 = std::views::iota(1) | std::views::take(n) | std::views::common ; constexpr auto v2 = std::views::iota(2) | std::views::take(n) ; const int product = std::inner_product(v1.begin(), v1.end(), v2.begin(), 0); std::cout << product << '\n'; }
出力
40
[編集] 不具合報告
以下の動作変更を伴う欠陥報告が、以前に公開されたC++標準に遡って適用されました。
| DR | 適用対象 | 公開された動作 | 正しい動作 |
|---|---|---|---|
| LWG 4012 | C++20 | 非 const オーバーロードで simple-view チェックが欠落していました。 | 追加された |
[編集] 関連項目
| 先頭へのイテレータを返す (public メンバ関数) | |
| (C++20) |
rangeの先頭を指すイテレータを返す (カスタマイゼーションポイントオブジェクト) |
| (C++20) |
rangeの終端を示す番兵を返す (カスタマイゼーションポイントオブジェクト) |