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

履歴 編集

concept
<ranges>

std::ranges::forward_range(C++20)

namespace std::ranges {
  template<class R, class T>
  concept forward_range = input_range<R> && forward_iterator<iterator_t<R>, T>;
}

概要

forward_rangeは、イテレータがforward_iteratorである範囲を表すコンセプトである。

モデル

Tforward_rangeのモデルとなるのは、Tinput_rangeのモデルであり、かつそのイテレータがforward_iteratorのモデルである場合である。

#include <ranges>
#include <forward_list>
#include <iostream>

int main() {
  using namespace std;
  // forward_listはforward_range
  static_assert(ranges::forward_range<forward_list<int>>);

  // istream_viewはforward_rangeではなく、input_range
  static_assert(!ranges::forward_range<decltype(ranges::istream_view<int>(cin))>);
  static_assert(ranges::input_range<decltype(ranges::istream_view<int>(cin))>);
}

出力

バージョン

言語

  • C++20

処理系

参照