Skip to content

Latest commit

 

History

History
72 lines (53 loc) · 1.44 KB

File metadata and controls

72 lines (53 loc) · 1.44 KB

base

  • ranges[meta header]
  • std::ranges[meta namespace]
  • as_rvalue_view[meta class]
  • function[meta id-type]
  • cpp23[meta cpp]
constexpr V base() const &
  requires copy_constructible<V>; // (1) C++23

constexpr V base() &&;            // (2) C++23

概要

元となるRangeを取得する。

  • (1) : 元となるRangeをコピーして返す
  • (2) : 元となるRangeをムーブして返す

戻り値

メンバ変数base_として保持している、元となるRangeオブジェクトがあるとして、以下を返す:

  • (1) :

    return base_;
  • (2) :

    return std::move(base_);
    • std::move[link /reference/utility/move.md]

備考

#include <cassert>
#include <vector>
#include <ranges>

int main() {
  std::vector<int> v = {1, 2, 3};
  auto r = std::views::as_rvalue(v);
  std::ranges::ref_view<std::vector<int>> base = r.base();

  assert(&base.base() == &v);
}
  • r.base()[color ff0000]
  • base.base()[link /reference/ranges/ref_view/base.md]

出力

バージョン

言語

  • C++23

処理系