Namespaces
Variants

std::ranges::drop_view<V>:: drop_view

From cppreference.net
Ranges library
Range adaptors
drop_view ( ) requires std:: default_initializable < V > = default ;
(1) (C++20 이후)
constexpr explicit drop_view ( V base, ranges:: range_difference_t < V > count ) ;
(2) (C++20 이후)

drop_view 를 생성합니다.

1) 기본 생성자. 값 초기화 로 기본 뷰 base_ 를 초기화하고 카운트 count_ 0 으로 초기화합니다. 생성 후, base() V ( ) 의 복사본을 반환하고 size() 는 기본 뷰의 크기와 동일합니다.
2) 기본 뷰 base_ std :: move ( base ) 로 초기화하고 카운트 count_ count 로 초기화합니다. 생성 후, base() base 의 복사본을 반환하며 size() ranges:: size ( base ) - count 를 반환합니다(단, base 의 크기가 count 보다 작지 않은 경우). 그렇지 않으면 0 를 반환합니다.

매개변수

base - 기본 뷰
count - 건너뛸 요소의 수

예제

#include <algorithm>
#include <array>
#include <iostream>
#include <iterator>
#include <ranges>
int main()
{
    constexpr std::array hi{'H', 'e', 'l', 'l', 'o', ',',
                            ' ', 'C', '+', '+', '2', '0'};
    std::ranges::for_each(hi, [](const char c){ std::cout << c; });
    std::cout << '\n';
    constexpr auto n = std::distance(hi.cbegin(), std::ranges::find(hi, 'C'));
    auto cxx = std::ranges::drop_view{hi, n};
    std::ranges::for_each(cxx, [](const char c){ std::cout << c; });
    std::cout << '\n';
}

출력:

Hello, C++20
C++20

결함 보고서

다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.

DR 적용 대상 게시된 동작 올바른 동작
LWG 3714
( P2711R1 )
C++20 다중 매개변수 생성자가 explicit이 아니었음 explicit으로 변경됨