std:: inout_ptr
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Non-member functions | ||||
|
inout_ptr
|
|
Definido en el encabezado
<memory>
|
||
|
template
<
class
Pointer
=
void
,
class
Smart,
class
...
Args
>
auto inout_ptr ( Smart & s, Args && ... args ) ; |
(desde C++23) | |
Devuelve un
inout_ptr_t
con argumentos de plantilla deducidos que captura argumentos para restablecer por referencia.
El programa está mal formado si la construcción del valor de retorno (ver abajo) está mal formada.
Contenidos |
Parámetros
| s | - | el objeto (normalmente un puntero inteligente) a adaptar |
| args... | - | los argumentos para resetear a capturar |
Valor de retorno
std::
inout_ptr_t
<
Smart, P, Args
&&
>
(
s,
std::
forward
<
Args
>
(
args
)
...
)
, donde
P
es
-
Pointer, siPointerno es un tipo void , en caso contrario, - Smart :: pointer , si es válido y denota un tipo, en caso contrario,
- Smart :: element_type * , si Smart :: element_type es válido y denota un tipo, en caso contrario,
- std:: pointer_traits < Smart > :: element_type * .
Notas
Los usuarios pueden especificar el argumento de plantilla para el parámetro de plantilla
Pointer
, para interoperar con funciones externas que toman un
Pointer
*
.
Como todos los argumentos para el reset son capturados por referencia, el
inout_ptr_t
devuelto debe ser un objeto temporal destruido al final de la expresión completa que contiene la llamada a la función externa, para evitar referencias colgantes.
| Macro de prueba de características | Valor | Estándar | Característica |
|---|---|---|---|
__cpp_lib_out_ptr
|
202106L
|
(C++23) |
std::out_ptr
,
std::inout_ptr
|
202311L
|
(C++26) |
Implementación independiente de
std::out_ptr
y
std::inout_ptr
|
Ejemplo
|
Esta sección está incompleta
Razón: sin ejemplo |
Véase también
|
(C++23)
|
crea un
out_ptr_t
con un puntero inteligente asociado y argumentos de reinicio
(plantilla de función) |
|
(C++14)
(C++20)
|
crea un puntero único que gestiona un nuevo objeto
(plantilla de función) |
|
crea un puntero compartido que gestiona un nuevo objeto
(plantilla de función) |