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를 생성해요.