std::inout_ptr
De cppreference.com
<tbody>
</tbody>
| Definido en el archivo de 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 (véase más abajo) está mal formada.
Parámetros
| s | - | El objeto (típicamente un puntero inteligente) a adaptar. |
| args... | - | Los argumentos a capturar para restablecer. |
Valor de retorno
std::inout_ptr_t<Smart, P, Args&&>(s, std::forward<Args>(args)...), donde P es
Pointer, siPointerno es lo mismo quevoid,- de lo contrario,
Smart::pointer, si es válido y denota un tipo, - de lo contrario,
Smart::element_type*, siSmart::element_typees válido y denota un tipo, - de lo contrario,
std::pointer_traits<Smart>::element_type*.
Notas
Los usuarios pueden especificar el argumento de plantilla para el parámetro de plantilla Pointer, a fin de interoperar con funciones externas que toman un Pointer*.
Como todos los argumentos para restablecer se capturan 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 pendientes.
| Macro de Prueba de característica |
|---|
__cpp_lib_out_ptr
|
Ejemplo
| Esta sección está incompleta Razón: sin ejemplo |
Véase también
(C++23) |
Crea un objeto out_ptr_t con un puntero inteligente asociado y los argumentos de restablecimiento. (plantilla de función) |
(C++14)(C++20) |
Crea un puntero único que gestiona a un nuevo objeto. (plantilla de función) |
| Crea un puntero compartido que gestiona un nuevo objeto. (plantilla de función) |