Namespaces
Variants

std::experimental::propagate_const<T>:: propagate_const

From cppreference.net
constexpr propagate_const ( ) = default ;
(1) (biblioteca fundamentals TS v2)
constexpr propagate_const ( propagate_const && p ) = default ;
(2) (biblioteca fundamentals TS v2)
template < class U >
/* ver más abajo */ constexpr propagate_const ( propagate_const < U > && pu ) ;
(3) (biblioteca fundamentals TS v2)
template < class U >
/* ver más abajo */ constexpr propagate_const ( U && u ) ;
(4) (biblioteca fundamentals TS v2)
propagate_const ( const propagate_const & ) = delete ;
(5) (biblioteca fundamentals TS v2)

Sea t_ el miembro de datos privado que designa el objeto similar a puntero encapsulado.

1) Construye un propagate_const , inicializando por defecto this - > t_ .
2) Constructor de movimiento explícitamente predeterminado que construye por movimiento this - > t_ desde p. t_ .
3) Inicializa this - > t_ como si mediante inicialización directa-no-de-lista de la expresión std :: move ( pu. t_ ) .
Este constructor no participa en la resolución de sobrecarga a menos que std:: is_constructible < T, U > :: value sea true , y es explicit si y solo si std:: is_convertible < U, T > :: value es false .
4) Inicializa this - > t_ como si mediante inicialización directa-no-lista con la expresión std:: forward < U > ( u ) .
Este constructor no participa en la resolución de sobrecarga a menos que std:: is_constructible < T, U > :: value sea true y std:: decay_t < U > no sea una especialización de propagate_const . Este constructor es explicit si y solo si std:: is_convertible < U, T > :: value es false .
5) El constructor de copia está explícitamente eliminado. propagate_const no es copiable.

Parámetros

p - otro objeto propagate_const desde el cual mover
pu - otro objeto propagate_const de una especialización diferente desde el cual mover
u - otro objeto con el cual inicializar el puntero contenido

Notas

En Library Fundamental TS v2 (basado en C++14), (4) y (5) típicamente se implementan en pares de sobrecargas explicit /no- explicit . Desde Library Fundamental TS v3 (basado en C++20), pueden implementarse en especificadores explicit condicionales.