Namespaces
Variants

std::ranges:: views:: to_input, std::ranges:: to_input_view

From cppreference.net
Ranges library
Range adaptors
Défini dans l'en-tête <ranges>
template < ranges:: input_range V >

requires ranges:: view < V >
class to_input_view

: public ranges:: view_interface < to_input_view < V >>
(1) (depuis C++26)
namespace views {

inline constexpr /* non spécifié */ to_input = /* non spécifié */ ;

}
(2) (depuis C++26)
Signature d'appel
template < ranges:: viewable_range R >

requires /* voir ci-dessous */

constexpr ranges:: view auto to_input ( R && r ) ;
(depuis C++26)
1) Un adaptateur de gamme qui représente une vue d'une view sous-jacente comme étant uniquement un input_range et non un common_range .
2) RangeAdaptorObject . Soit e une sous-expression, et soit T égal à decltype ( e ) . Alors l'expression views :: to_input ( e ) est équivalente-expression à :

Par conséquent, to_input_view ne modélise jamais les concepts de gamme plus forts que input_range . En particulier, il ne modélise aucun de ceux-ci :

De plus, to_input_view ne modélise pas common_range . Cependant, il modélise borrowed_range , constant_range , et sized_range lorsque la vue sous-jacente V modélise les concepts respectifs.

Table des matières

Membres de données

Membre Description
V base_ (privé) la vue sous-jacente
( objet membre d'exposition uniquement* )

Fonctions membres

construit un to_input_view
(fonction membre publique)
retourne une copie de la vue sous-jacente (adaptée)
(fonction membre publique)
retourne un itérateur vers le début
(fonction membre publique)
retourne un itérateur ou un sentinelle vers la fin
(fonction membre publique)
retourne le nombre d'éléments. Fourni uniquement si la plage sous-jacente (adaptée) satisfait sized_range .
(fonction membre publique)
Hérité de std::ranges::view_interface
indique si la vue dérivée est vide, fourni uniquement si elle satisfait sized_range ou forward_range
(fonction membre publique de std::ranges::view_interface<D> )
(C++23)
retourne un itérateur constant vers le début de la plage
(fonction membre publique de std::ranges::view_interface<D> )
(C++23)
retourne un sentinelle pour l'itérateur constant de la plage
(fonction membre publique de std::ranges::view_interface<D> )
indique si la vue dérivée n'est pas vide, fourni uniquement si ranges::empty lui est applicable
(fonction membre publique de std::ranges::view_interface<D> )
obtient l'adresse des données de la vue dérivée, fourni uniquement si son type d'itérateur satisfait contiguous_iterator
(fonction membre publique de std::ranges::view_interface<D> )
retourne le premier élément de la vue dérivée, fourni si elle satisfait forward_range
(fonction membre publique de std::ranges::view_interface<D> )
retourne le dernier élément de la vue dérivée, fourni uniquement si elle satisfait bidirectional_range et common_range
(fonction membre publique de std::ranges::view_interface<D> )
retourne le n ème élément de la vue dérivée, fourni uniquement si elle satisfait random_access_range
(fonction membre publique de std::ranges::view_interface<D> )

std::ranges::to_input_view:: to_input_view

to_input_view ( ) requires std:: default_initializable < V > = default ;
(1) (depuis C++26)
constexpr explicit to_input_view ( V base ) ;
(2) (depuis C++26)
1) Initialise par valeur base_ via son initialiseur de membre par défaut ( = V ( ) ).
2) Initialise base_ avec std :: move ( base ) .

Paramètres

base - une vue

std::ranges::to_input_view:: base

constexpr V base ( ) const & requires std:: copy_constructible < V > ;
(1) (depuis C++26)
constexpr V base ( ) && ;
(2) (depuis C++26)
1) Construit par copie le résultat à partir de la vue sous-jacente. Équivalent à return base_ ; .
2) Construit par déplacement le résultat à partir de la vue sous-jacente. Équivalent à return std :: move ( base_ ) ; .

std::ranges::to_input_view:: begin

constexpr auto begin ( ) requires ( ! __simple_view < V > ) ;
(1) (depuis C++26)
constexpr auto begin ( ) const requires ranges:: range < const V > ;
(2) (depuis C++26)
1) Équivalent à return /*iterator*/ < false > ( ranges:: begin ( base_ ) ) ;
2) Équivalent à return /*iterator*/ < true > ( ranges:: begin ( base_ ) ) ;

std::ranges::to_input_view:: end

constexpr auto end ( ) requires ( ! __simple_view < V > ) ;
(1) (depuis C++26)
constexpr auto end ( ) const requires ranges:: range < const V > ;
(2) (depuis C++26)
1,2) Équivalent à return ranges:: end ( base_ ) ;

std::ranges::to_input_view:: size

constexpr auto size ( ) requires ranges:: sized_range < V > ;
(1) (depuis C++26)
constexpr auto size ( ) const requires ranges:: sized_range < const V > ;
(2) (depuis C++26)
1,2) Équivalent à return ranges:: size ( base_ ) ;

Guides de déduction

template < class R >
to_input_view ( R && ) - > to_input_view < views:: all_t < R >> ;
(depuis C++26)

Classes imbriquées

le type d'itérateur
( classe membre de présentation uniquement* )

Modèles d'assistance

template < class T >

constexpr bool enable_borrowed_range < std :: ranges :: to_input_view < T >> =

ranges:: enable_borrowed_range < T > ;
(depuis C++26)

Cette spécialisation de std :: ranges:: enable_borrowed_range permet à to_input_view de satisfaire borrowed_range lorsque la vue sous-jacente la satisfait.

Notes

to_input_view peut être utile pour éviter la surcharge nécessaire pour fournir le support des opérations requises pour une force d'itérateur supérieure.

Macro de test de fonctionnalité Valeur Std Fonctionnalité
__cpp_lib_ranges_to_input 202502L (C++26) std::ranges::to_input_view

Exemple

Voir aussi

spécifie une gamme dont le type d'itérateur satisfait input_iterator
(concept)
convertit une view en une common_range
(modèle de classe) (objet adaptateur de gamme)