std:: copyable_function
|
Definido en el encabezado
<functional>
|
||
|
template
<
class
...
>
class copyable_function ; // no definida |
(1) | (desde C++26) |
|
template
<
class
R,
class
...
Args
>
class
copyable_function
<
R
(
Args...
)
>
;
|
(2) | (desde C++26) |
La plantilla de clase
std::copyable_function
es un contenedor de funciones polimórfico de propósito general.
Los objetos
std::copyable_function
pueden almacenar e invocar cualquier
CopyConstructible
Callable
objetivo
— funciones,
expresiones lambda
,
expresiones de enlace
, u otros objetos función, así como punteros a funciones miembro y punteros a objetos miembro.
El objeto invocable almacenado se denomina
target
de
std::copyable_function
. Si un
std::copyable_function
no contiene ningún target, se denomina
empty
. A diferencia de
std::function
, invocar un
empty
std::copyable_function
resulta en comportamiento indefinido.
std::copyable_function
admite todas las combinaciones posibles de
calificadores cv
(excluyendo
volatile
),
calificadores de referencia
, y
especificadores noexcept
proporcionados en su parámetro de plantilla. Estos calificadores y especificadores (si los hay) se añaden a su
operator()
.
std::copyable_function
satisface los requisitos de
CopyConstructible
y
CopyAssignable
.
Contenidos |
Tipos de miembros
| Tipo | Definición |
result_type
|
R
|
Funciones miembro
construye un nuevo objeto
std::copyable_function
(función miembro pública) |
|
destruye un objeto
std::copyable_function
(función miembro pública) |
|
|
reemplaza o destruye el objetivo
(función miembro pública) |
|
intercambia los objetivos de dos objetos
std::copyable_function
(función miembro pública) |
|
verifica si el
std::copyable_function
tiene un objetivo
(función miembro pública) |
|
|
invoca el objetivo
(función miembro pública) |
Funciones no miembro
|
(C++26)
|
sobrecarga el algoritmo
std::swap
(función) |
|
(C++26)
|
compara un
std::copyable_function
con
nullptr
(función) |
Notas
Las implementaciones pueden almacenar un objeto invocable de tamaño reducido dentro del
std::copyable_function
objeto. Esta optimización de objeto pequeño está efectivamente requerida para punteros a función y
std::reference_wrapper
especializaciones, y solo puede aplicarse a tipos
T
para los cuales
std::
is_nothrow_move_constructible_v
<
T
>
es
true
.
| Macro de prueba de características | Valor | Std | Característica |
|---|---|---|---|
__cpp_lib_copyable_function
|
202306L
|
(C++26) |
std::copyable_function
|
Ejemplo
|
Esta sección está incompleta
Razón: sin ejemplo |
Véase también
|
(C++11)
|
contenedor copiable de cualquier objeto invocable copiable
(plantilla de clase) |
|
(C++23)
|
contenedor no copiable de cualquier objeto invocable que soporta calificadores en una signatura de llamada dada
(plantilla de clase) |
|
(C++26)
|
contenedor no propietario de cualquier objeto invocable
(plantilla de clase) |