Namespaces
Variants

std::ranges::view_interface<D>:: operator[]

From cppreference.net
Ranges library
Range adaptors
template < ranges:: random_access_range R = D >
constexpr decltype ( auto ) operator [ ] ( ranges:: range_difference_t < R > n ) ;
(1) (C++20 이후)
template < ranges:: random_access_range R = const D >
constexpr decltype ( auto ) operator [ ] ( ranges:: range_difference_t < R > n ) const ;
(2) (C++20 이후)

operator [ ] 멤버 함수의 기본 구현은 시작 반복자로부터 지정된 오프셋에 있는 요소를 얻으며, 이터레이터 타입의 operator [ ] 를 재사용합니다.

1) derived static_cast < D & > ( * this ) 로 설정합니다. return ranges:: begin ( derived ) [ n ] ; 와 동일합니다.
2) (1) 과 동일하지만, derived static_cast < const D & > ( * this ) 인 경우입니다.

목차

매개변수

n - 반환할 요소의 위치

반환값

시작 반복자로부터 오프셋 n 에 위치한 요소입니다.

참고 사항

C++20에서, 표준 라이브러리 내 std::ranges::view_interface 에서 파생된 어떤 타입도 자체적인 operator [ ] 멤버 함수를 제공하지 않습니다.

그러나 다음과 같은 파생 타입들은 기본 구현을 사용할 수 없습니다. 왜냐하면 이들은 절대 random_access_range 를 만족하지 않기 때문입니다:

상속된 operator [ ] 멤버 함수는 std::ranges::empty_view 에서 사용 가능하지만, 이를 호출하면 항상 정의되지 않은 동작(undefined behavior)이 발생합니다.

예제