std::experimental::propagate_const<T>:: propagate_const
From cppreference.net
<
cpp
|
experimental
|
propagate const
|
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
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
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.