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

履歴 編集

function
<ranges>

std::ranges::as_rvalue_view::コンストラクタ(C++23)

as_rvalue_view()
  requires default_initializable<V> = default; // (1) C++23

constexpr explicit
  as_rvalue_view(V base);                      // (2) C++23

概要

as_rvalue_viewオブジェクトを構築する。

  • (1) : baseをムーブして*thisに保持する

効果

  • (1) : メンバ変数base_std::move(base)で初期化する

備考

  • ここで、Vstd::ranges::ref_viewであり、元となるRangeはviewに変換されて保持される。

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

int main() {
  std::vector<int> v = {1, 2, 3};
  std::ranges::for_each(
    std::views::as_rvalue(v),
    [](int x) { std::cout << x << ' '; }
  );
}

出力

1 2 3 

バージョン

言語

  • C++23

処理系