ranges_owning_view

ranges_owning_view (소유 뷰)

std::ranges::owning_view은 범위에 대해 유일한 소유권을 갖는 뷰예요. 이동 전용이며 그 범위를 내부에 저장해요. C++20부터 사용할 수 있어요.

출처: cppreference

본문

<ranges> 헤더에 정의되어 있고, 시그니처는 다음과 같아요.

template< ranges::range R >
    requires std::movable<R> && (!/*is-initializer-list*/<R>)
class owning_view
    : public ranges::view_interface<owning_view<R>>

(since C++20)

owning_view는 범위에 대해 유일한 소유권을 갖는 뷰예요. 이동 전용이며 그 범위를 내부에 저장해요.

requires 절의 상수 /*is-initializer-list*/<R>std::remove_cvref_t<R>std::initializer_list의 특수화일 때만 true예요.

데이터 멤버 (Data members)

멤버 설명
R r_ 포함된 기본 범위 (설명 전용 멤버 객체)

멤버 함수 (Member functions)

  • (constructor) — owning_view 생성 (범위를 이동)
  • base — 기본 범위에 대한 참조 반환
  • begin / end / size / data — 기본 범위에 위임

참고 (Notes)

owning_view는 이동 전용이고, 소유 컨테이너를 뷰 파이프라인에 통합할 때 유용해요. views::all(rvalue_range)가 owning_view를 생성해요.

더 알아보기 (Learn more)

cppreference