std::ranges::view_interface<D>::operator[]
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[]을 재사용합니다.
derived을 static_cast<D&>(*this)라고 합니다. return ranges::begin(derived)[n];과 동일합니다.derived이(가) static_cast<const D&>(*this)이라는 점이 다릅니다.매개변수
| n | - | 반환할 요소의 위치 |
반환값
시작 반복자로부터 오프셋
n
에 위치한 요소입니다.
참고 사항
C++20에서, 표준 라이브러리 내 std::ranges::view_interface 에서 파생된 어떤 타입도 자체적인 operator [ ] 멤버 함수를 제공하지 않습니다.
그러나 다음과 같은 파생 타입들은 기본 구현을 사용할 수 없습니다. 왜냐하면 이들은 절대
random_access_range
를 만족하지 않기 때문입니다:
- std::ranges::basic_istream_view
- std::ranges::filter_view
- std::ranges::join_view
- std::ranges::lazy_split_view
- std::ranges::split_view
상속된 operator [ ] 멤버 함수는 std::ranges::empty_view 에서 사용 가능하지만, 이를 호출하면 항상 정의되지 않은 동작(undefined behavior)이 발생합니다.
예제
|
이 섹션은 불완전합니다
이유: 예제가 없음 |