std::ranges::take_view<V>:: begin
|
constexpr
auto
begin
(
)
requires
(
!
/*simple-view*/
<
V
>
)
;
|
(1) | (C++20 이후) |
|
constexpr
auto
begin
(
)
const
requires
ranges::
range
<
const
V
>
;
|
(2) | (C++20 이후) |
take_view
의 첫 번째 요소에 대한 반복자를 반환합니다.
오버로드
(1)
는
V
가
단순 뷰(simple view)
인 경우(즉,
V
와
const V
가 동일한 반복자와 센티넬 타입을 가진 뷰인 경우) 오버로드 해결에 참여하지 않습니다.
목차 |
매개변수
(없음)
반환값
결과는 const 한정이 있을 수 있는 기본 뷰 타입
Base
가 충족하는 컨셉에 따라 달라지며,
이는
(
1
)
의 경우
V
이고
(
2
)
의 경우
const V
입니다.
base_
를 기본 뷰로,
count_
를 기본 카운터로 설정합니다
(
take_view
가 기본 초기화된 경우
0
과 동일합니다).
|
기본 뷰 타입이
다음을 만족하는 경우 ... |
random_access_range
|
||
|---|---|---|---|
| 예 | 아니오 | ||
sized_range
|
예 | ranges:: begin ( base_ ) |
std::
counted_iterator
(
ranges::
begin
(
base_
)
,
ranges:: range_difference_t < Base_ > ( this - > size ( ) ) ) |
| 아니오 | std:: counted_iterator ( ranges:: begin ( base_ ) , count_ ) | ||
예제
#include <concepts> #include <forward_list> #include <iostream> #include <ranges> #include <string_view> #include <type_traits> using namespace std::literals; int main() { { static constexpr auto v = {"∀x"sv, "∃y"sv, "ε"sv, "δ"sv}; auto view = std::ranges::take_view(v, 8); auto iter = view.begin(); std::cout << *iter << '\n'; static_assert( std::ranges::sized_range<decltype(v)> and std::ranges::random_access_range<decltype(v)> and std::is_same_v<decltype(iter), decltype(std::ranges::begin(v))> ); } { std::forward_list v = {"Ax"sv, "Ey"sv, "p"sv, "q"sv}; auto view = std::ranges::take_view(v, 8); auto iter = view.begin(); std::cout << *iter << '\n'; static_assert( not std::ranges::sized_range<decltype(v)> and not std::ranges::random_access_range<decltype(v)> and std::is_same_v<decltype(iter), std::counted_iterator< std::forward_list<std::string_view>::iterator>> ); } }
출력:
∀x Ax
결함 보고서
다음 동작 변경 결함 보고서는 이전에 게시된 C++ 표준에 소급 적용되었습니다.
| DR | 적용 대상 | 게시된 동작 | 올바른 동작 |
|---|---|---|---|
| P2393R1 | C++20 | 부호 있는 정수 클래스 타입과 부호 없는 정수 클래스 타입 간의 암시적 변환이 실패할 수 있음 | 명시적으로 변경됨 |
참고 항목
|
끝을 가리키는 반복자 또는 센티널을 반환합니다
(public member function) |
|
|
(C++20)
|
범위의 끝까지 거리를 추적하는 반복자 어댑터
(class template) |
|
(C++20)
|
take_view::begin
에서 반환된 반복자와 센티널을 비교합니다
(function) |