Namespaces
Variants

std::experimental::ranges:: dangling, std::experimental::ranges:: safe_iterator_t

From cppreference.net
Défini dans l'en-tête <experimental/ranges/iterator>
template < CopyConstructible T >

class dangling {
public :
dangling ( ) requires DefaultConstructible < T > ( ) ;
dangling ( T t ) ;
T get_unsafe ( ) const ;

} ;
(ranges TS)
template < Range R >

using safe_iterator_t = std:: conditional_t < std:: is_lvalue_reference < R > :: value ,
ranges:: iterator_t < R > ,

ranges:: dangling < ranges:: iterator_t < R >> ;
(ranges TS)

Le modèle de classe dangling est un simple wrapper autour d'un objet pour indiquer que l'objet encapsulé peut être pendant , c'est-à-dire qu'il fait référence à un autre objet dont la durée de vie peut avoir pris fin.

L'alias template safe_iterator_t retourne le type d'itérateur de R , encapsulé dans dangling si la plage était une plage rvalue (comme indiqué par R n'étant pas un type référence lvalue).

Ils sont utilisés par les algorithmes de plage qui acceptent les plages de rvalue et renvoient des itérateurs vers celles-ci.

Fonctions membres

std::experimental::ranges::dangling:: dangling

dangling ( ) requires DefaultConstructible < T > ( ) ;
(1)
dangling ( T t ) ;
(2)
1) Constructeur par défaut. Initialise par valeur l'objet encapsulé.
2) Initialise l'objet encapsulé avec t . Notez que ce constructeur définit une conversion implicite de T vers dangling<T> .

std::experimental::ranges::dangling:: get_unsafe

T get_unsafe ( ) const ;

Retourne une copie de l'objet encapsulé.