std::ranges::take_view<V>:: end
|
constexpr
auto
end
(
)
requires
(
!
/*simple-view*/
<
V
>
)
;
|
(1) | (C++20 이후) |
|
constexpr
auto
end
(
)
const
requires
ranges::
range
<
const
V
>
;
|
(2) | (C++20 이후) |
take_view
의 끝을 나타내는 센티넬 또는 반복자를 반환합니다.
take_view
의 끝은 기본 범위의
count
번째
요소 다음 위치이거나,
기본 범위가
count
보다 적은 요소를 가지고 있을 경우 기본 범위의 끝입니다.
오버로드
(1)
는
V
가
단순 뷰(simple view)
인 경우(즉,
V
와
const V
가 동일한 반복자 및 센티넬 타입을 가진 뷰인 경우) 오버로드 해결에 참여하지 않습니다.
목차 |
매개변수
(없음)
반환값
결과는 const 한정이 있을 수 있는 기본 뷰 타입
Base
, 즉
(
1
)
의 경우
V
또는
(
2
)
의 경우
const V
가 충족하는 컨셉에 따라 달라집니다.
base_
를 기본 뷰로 설정합니다.
|
기본 뷰 타입이
다음을 만족하는 경우 |
random_access_range
|
||
|---|---|---|---|
| 예 | 아니오 | ||
sized_range
|
예 |
ranges::
begin
(
base_
)
+
ranges:: range_difference_t < Base_ > ( this - > size ( ) ) |
std:: default_sentinel |
| 아니오 |
1)
/*sentinel*/
<
false
>
{
ranges::
end
(
base_
)
}
2)
/*sentinel*/
<
true
>
{
ranges::
end
(
base_
)
}
|
||
예제
#include <iostream> #include <iterator> #include <list> #include <ranges> #include <type_traits> namespace ranges = std::ranges; namespace views = std::views; int main() { const auto list1 = {3, 1, 4, 1, 5}; const auto seq1{list1 | views::take(4)}; static_assert(ranges::sized_range<decltype(seq1)> and ranges::random_access_range<decltype(seq1)> and std::is_same_v<decltype(seq1.end()), decltype(list1.end())>); for (auto it = seq1.begin(); it != seq1.end(); ++it) std::cout << *it << ' '; std::cout << '\n'; std::list list2{2, 7, 1, 8, 2}; const auto seq2{list2 | views::take(4)}; static_assert(ranges::sized_range<decltype(seq2)> and not ranges::random_access_range<decltype(seq2)> and std::is_same_v<decltype(seq2.end()), std::default_sentinel_t>); for (auto it = seq2.begin(); it != std::default_sentinel; ++it) std::cout << *it << ' '; std::cout << '\n'; }
출력:
3 1 4 1 2 7 1 8
결함 보고서
다음 동작 변경 결함 보고서는 이전에 발표된 C++ 표준에 소급 적용되었습니다.
| DR | 적용 대상 | 게시된 동작 | 올바른 동작 |
|---|---|---|---|
| P2393R1 | C++20 | 부호 있는 정수 클래스 타입과 부호 없는 정수 클래스 타입 간의 암시적 변환이 실패할 수 있음 | 명시적으로 변경됨 |
참고 항목
|
시작 부분을 가리키는 반복자를 반환합니다
(public member function) |
|
|
(C++20)
|
범위의 끝까지 거리를 추적하는 반복자 어댑터
(class template) |
|
(C++20)
|
센티넬과
take_view::begin
에서 반환된 반복자를 비교합니다
(function) |