Namespaces
Variants

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

De fr.cppreference.net
 
 
Bibliothèque de plages
Adaptateurs de plages
 
 
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 la construction, base() renvoie 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() renvoie une copie de base et size() renvoie 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