Namespaces
Variants

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

From cppreference.net
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)

Die Klassenvorlage dangling ist ein einfacher Wrapper um ein Objekt, um anzuzeigen, dass das eingeschlossene Objekt möglicherweise dangling ist, das heißt, es verweist auf ein anderes Objekt, dessen Lebensdauer möglicherweise bereits beendet ist.

Die Alias-Vorlage safe_iterator_t gibt den Iteratortyp von R zurück, eingewickelt in dangling , falls der Bereich ein Rvalue-Bereich war (angezeigt dadurch, dass R kein Lvalue-Referenztyp ist).

Sie werden von Bereichsalgorithmen verwendet, die Rvalue-Bereiche akzeptieren und Iteratoren in diese zurückgeben.

Memberfunktionen

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

dangling ( ) requires DefaultConstructible < T > ( ) ;
(1)
dangling ( T t ) ;
(2)
1) Standardkonstruktor. Wertinitialisiert das gekapselte Objekt.
2) Initialisiert das gekapselte Objekt mit t . Beachten Sie, dass dieser Konstruktor eine implizite Konvertierung von T zu dangling<T> definiert.

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

T get_unsafe ( ) const ;

Gibt eine Kopie des gekapselten Objekts zurück.