最終更新日時(UTC):
が更新

履歴 編集

function
<ranges>

std::ranges::common_view::end(C++20)

constexpr auto end();      // (1) C++20
constexpr auto end() const
  requires range<const V>; // (2) C++20

概要

番兵を取得する。

効果

#include <ranges>
#include <vector>
#include <algorithm>
#include <iostream>

int main() {
  std::vector<int> vec = {1, 2, 3, 4, 5};

  // common_rangeではないviewを作成
  auto taken = vec | std::views::take(3);

  // common_viewでラップ
  std::ranges::common_view cv(taken);

  // begin()とend()が同じ型を返す
  auto begin = cv.begin();
  auto end = cv.end();
  static_assert(std::same_as<decltype(begin), decltype(end)>);

  // レガシーアルゴリズムに渡せる
  std::for_each(begin, end, [](int n) {
    std::cout << n << " ";
  });
  std::cout << std::endl;
}

出力

1 2 3 

バージョン

言語

  • C++20

処理系

参照