std::ranges::view_interface<D>:: operator[]
|
||||||||||||||||||||||
| Range primitives | |||||||
|
|||||||
| Range concepts | |||||||||||||||||||
|
|||||||||||||||||||
| Range factories | |||||||||
|
|||||||||
| Range adaptors | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||
| Helper items | |||||||||||||||||
|
|
||||||||||||||||
| Member functions | ||||
|
(C++23)
|
||||
|
(C++23)
|
||||
|
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)이 발생합니다.
예제
|
이 섹션은 불완전합니다
이유: 예제가 없음 |