Namespaces
Variants

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

From cppreference.net
Definido en el encabezado <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)

La plantilla de clase dangling es un contenedor simple alrededor de un objeto para indicar que el objeto contenido puede estar colgando , es decir, hace referencia a otro objeto cuyo tiempo de vida puede haber finalizado.

La plantilla de alias safe_iterator_t devuelve el tipo iterador de R , envuelto en dangling si el rango era un rango rvalue (como se indica por R no siendo un tipo de referencia lvalue).

Se utilizan por algoritmos de rango que aceptan rangos rvalue y devuelven iteradores hacia ellos.

Funciones miembro

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

dangling ( ) requires DefaultConstructible < T > ( ) ;
(1)
dangling ( T t ) ;
(2)
1) Constructor por defecto. Inicializa el objeto envuelto con valor por defecto.
2) Inicializa el objeto envuelto con t . Nótese que este constructor define una conversión implícita de T a dangling<T> .

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

T get_unsafe ( ) const ;

Devuelve una copia del objeto encapsulado.