std::experimental::function<R(Args...)>:: function
|
function
(
)
noexcept
;
|
(1) | (spécifications techniques des bibliothèques fondamentales) |
|
function
(
std::
nullptr_t
)
noexcept
;
|
(2) | (spécifications techniques des bibliothèques fondamentales) |
|
function
(
const
function
&
other
)
;
|
(3) | (spécifications techniques des bibliothèques fondamentales) |
|
function
(
function
&&
other
)
;
|
(4) | (spécifications techniques des bibliothèques fondamentales) |
|
template
<
class
F
>
function ( F f ) ; |
(5) | (spécifications techniques des bibliothèques fondamentales) |
| (6) | ||
|
template
<
class
Alloc
>
function ( std:: allocator_arg_t , const Alloc & alloc ) noexcept ; |
(spécifications techniques des bibliothèques fondamentales) | |
|
function
(
std::
allocator_arg_t
,
const allocator_type & alloc ) noexcept ; |
(spécifications techniques des bibliothèques fondamentales v3) | |
| (7) | ||
|
template
<
class
Alloc
>
function
(
std::
allocator_arg_t
,
const
Alloc
&
alloc,
|
(spécifications techniques des bibliothèques fondamentales) | |
|
function
(
std::
allocator_arg_t
,
const
allocator_type
&
alloc,
std:: nullptr_t ) noexcept ; |
(spécifications techniques des bibliothèques fondamentales v3) | |
| (8) | ||
|
template
<
class
Alloc
>
function
(
std::
allocator_arg_t
,
const
Alloc
&
alloc,
|
(spécifications techniques des bibliothèques fondamentales) | |
|
function
(
std::
allocator_arg_t
,
const
allocator_type
&
alloc,
const function & other ) ; |
(spécifications techniques des bibliothèques fondamentales v3) | |
| (9) | ||
|
template
<
class
Alloc
>
function
(
std::
allocator_arg_t
,
const
Alloc
&
alloc,
|
(spécifications techniques des bibliothèques fondamentales) | |
|
function
(
std::
allocator_arg_t
,
const
allocator_type
&
alloc,
function && other ) ; |
(spécifications techniques des bibliothèques fondamentales v3) | |
| (10) | ||
|
template
<
class
F,
class
Alloc
>
function ( std:: allocator_arg_t , const Alloc & alloc, F f ) ; |
(spécifications techniques des bibliothèques fondamentales) | |
|
function
(
std::
allocator_arg_t
,
const
allocator_type
&
alloc, F f
)
;
|
(spécifications techniques des bibliothèques fondamentales v3) | |
Construit un
std::experimental::function
à partir de diverses sources.
Args...
et le type de retour
R
.
function
pourrait utiliser.
Ces constructeurs traitent
alloc
comme un allocateur à effacement de type (voir ci-dessous).
(jusqu'à la bibliothèque fundamentals TS v3)
|
Après construction via (1-5) , this - > get_memory_resource ( ) retourne la même valeur que std:: experimental :: pmr :: get_default_resource ( ) pendant la construction. |
(library fundamentals TS)
(until library fundamentals TS v3) |
|
Après construction via (1-3) et (5) , * this stocke un std:: pmr :: polymorphic_allocator <> construit par défaut. |
(library fundamentals TS v3) |
Lorsque la cible est un pointeur de fonction ou un std::reference_wrapper , l'optimisation des petits objets est garantie, c'est-à-dire que ces cibles sont toujours stockées directement à l'intérieur de l'objet std::experimental::function , aucune allocation dynamique n'a lieu. D'autres objets volumineux peuvent être construits dans la mémoire allouée dynamiquement et accessibles par l'objet std::experimental::function via un pointeur.
Si un constructeur déplace ou copie un objet fonction, y compris une instance de
std::experimental::function
, alors ce déplacement ou cette copie est effectué par
construction avec allocateur
avec l'allocateur
this
-
>
get_memory_resource
(
)
(jusqu'à la bibliothèque fundamentals TS v3)
this
-
>
get_allocator
(
)
(bibliothèque fundamentals TS v3)
.
Table des matières |
Allocateur à effacement de type
Les constructeurs de
function
prenant un argument d'allocateur
alloc
traitent cet argument comme un allocateur à effacement de type. Le pointeur de ressource mémoire utilisé par
function
pour allouer de la mémoire est déterminé en utilisant l'argument d'allocateur (s'il est spécifié) comme suit :
Type de
alloc
|
Valeur du pointeur de ressource mémoire |
| Inexistant (aucun allocateur spécifié au moment de la construction) | La valeur de std:: experimental :: pmr :: get_default_resource ( ) au moment de la construction. |
| std::nullptr_t | La valeur de std:: experimental :: pmr :: get_default_resource ( ) au moment de la construction. |
|
Un type pointeur convertible en
std:: experimental :: pmr :: memory_resource * |
static_cast < std:: experimental :: pmr :: memory_resource * > ( alloc ) |
|
Une spécialisation de
std::experimental::pmr::polymorphic_allocator |
alloc. resource ( ) |
| Tout autre type satisfaisant aux exigences Allocator |
Un pointeur vers une valeur de type
std::
experimental
::
pmr
::
resource_adaptor
<
A
>
(
alloc
)
, où
A
est le type de
alloc
. Le pointeur reste valide uniquement pendant la durée de vie de l'objet
function
.
|
| Aucun des cas ci-dessus | Le programme est mal formé. |
Paramètres
| other | - | l'objet fonction utilisé pour initialiser * this |
| f | - | un appelable utilisé pour initialiser * this |
| alloc | - | un allocateur utilisé pour l'allocation mémoire interne |
| Exigences de type | ||
-
F
doit satisfaire aux exigences de
Callable
et
CopyConstructible
.
|
||
Exceptions
Exemple
|
Cette section est incomplète
Raison : aucun exemple |