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) (depuis C++20)
constexpr explicit drop_view ( V base, ranges:: range_difference_t < V > count ) ;
(2) (depuis C++20)

Construit un drop_view .

1) Constructeur par défaut. Initialise par valeur la vue sous-jacente base_ et initialise le compteur count_ à 0 . Après construction, base() retourne une copie de V ( ) et size() est égal à la taille de la vue sous-jacente.
2) Initialise la vue sous-jacente base_ avec std :: move ( base ) et le compteur count_ avec count . Après la construction, base() retourne une copie de base et size() retourne ranges:: size ( base ) - count si la taille de base n'est pas inférieure à count , ou 0 sinon.

Paramètres

base - la vue sous-jacente
count - nombre d'éléments à ignorer

Exemple

#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';
}

Sortie :

Hello, C++20
C++20

Rapports de défauts

Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.

DR Appliqué à Comportement publié Comportement correct
LWG 3714
( P2711R1 )
C++20 le constructeur multi-paramètres n'était pas explicite rendu explicite