最終更新日時:
が更新

履歴 編集

function
<ranges>

std::ranges::filter_view::sentinel::base(C++20)

constexpr const sentinel_t<V> base() const;

概要

元のviewの番兵を取得する。

効果

入力viewV)の番兵をend_というメンバに保持するとして、return end_; と等しい

#include <ranges>
#include <concepts>

int main()
{
  // take_while_viewは非common_rangeなので、filter_viewのend()は番兵を返す
  auto base = std::views::iota(1)
            | std::views::take_while([](int i) { return i <= 10; });
  auto fv = base | std::views::filter([](int i) { return i % 2 == 0; });

  auto se = fv.end();

  // base()で元のview(take_while_view)の番兵を取得する
  auto s = se.base();
  static_assert(std::same_as<decltype(s), std::ranges::sentinel_t<decltype(base)>>);
}

出力

バージョン

言語

  • C++20

処理系

参照