Espaces de noms
Variantes
Affichages
Actions

std::function

De cppreference.com
< cpp‎ | utility‎ | functional
 
 
 
Objets Function
Emballages de fonction
Original:
Function wrappers
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
function (C++11)
mem_fn (C++11)
bad_function_call (C++11)
Lier
Original:
Bind
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
bind (C++11)
is_bind_expression (C++11)
is_placeholder (C++11)
_1, _2, _3, ... (C++11)
Emballages de référence
Original:
Reference wrappers
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
reference_wrapper (C++11)
ref
cref
(C++11)
(C++11)
Emballages opérateur
Original:
Operator wrappers
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Négateurs
Original:
Negators
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Obsolète liants et des adaptateurs
Original:
Deprecated binders and adaptors
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
unary_function (obsolète)
binary_function (obsolète)
ptr_fun (obsolète)
pointer_to_unary_function (obsolète)
pointer_to_binary_function (obsolète)
mem_fun (obsolète)
mem_fun_t
mem_fun1_t
const_mem_fun_t
const_mem_fun1_t
(obsolète)
(obsolète)
(obsolète)
(obsolète)
mem_fun_ref (obsolète)
mem_fun_ref_t
mem_fun1_ref_t
const_mem_fun_ref_t
const_mem_fun1_ref_t
(obsolète)
(obsolète)
(obsolète)
(obsolète)
binder1st
binder2nd
(obsolète)
(obsolète)
bind1st
bind2nd
(obsolète)
(obsolète)
 
std::function
Les fonctions membres
Original:
Member functions
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
function::function
function::~function
function::operator=
function::swap
function::assign
function::operator bool
function::operator()
function::target_type
function::target
Tiers fonctions
Original:
Non-member functions
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
operator==
operator!=
std::swap(std::function)
Classes d'aide
Original:
Helper classes
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
std::uses_allocator<std::function>
 
Defined in header <functional>
template< class >
class function; /* undefined */
(depuis C++11)
template< class R, class... Args >
class function<R(Args...)>
(depuis C++11)

Le template de classe std::function est un adaptateur générique de fonction. En d'autres termes, une instance de std::function permet de manipuler une cible appelable (i.e. pour laquelle operator() est défini) , par exemple : une lambda (fonction anonyme), un bind (application partielle de fonction), un foncteur (objet-fonction), une fonction...

Sommaire

[modifier] Types membres

Type Définition
result_type R
argument_type le type du paramètre de fonction, si la fonction admet un seul paramètre (spécifié dans Args...)
first_argument_type le type du premier paramètre de fonction, si la fonction admet deux paramètres (spécifiés dans Args...)
second_argument_type le type du second paramètre de fonction, si la fonction admet deux paramètres (spécifiés dans Args...)

[modifier] Fonctions membres

construit une instance de std::function
(fonction membre publique) [edit]
détruit une instance de std::function
(fonction membre publique) [edit]
affecte un contenu à une instance de std::function
(fonction membre publique) [edit]
permute le contenu de deux instances de std::function
(fonction membre publique) [edit]
assigne une nouvelle instanciation (nouvelle cible)
(fonction membre publique) [edit]
vérifie si la cible est valide
(fonction membre publique) [edit]
appelle/évalue la cible
(fonction membre publique) [edit]
Access à la cible
retourne le typeid de la cible stockée par l'instance
(fonction membre publique) [edit]
retourne un pointeur vers la cible stockée par l'instance
(fonction membre publique) [edit]

[modifier] Fonctions non-membres

permet de spécialiser l'algorithme std::swap
(fonction générique) [edit]
comparent deux instances de std::function
(fonction générique)

[modifier] Classe d'aide

spécialise std::uses_allocator
(classe générique spécialisée) [edit]

[modifier] Exemple

#include <functional>
#include <iostream>
 
struct Foo {
    Foo(int num) : num_(num) {}
    void print_add(int i) const { std::cout << num_+i << '\n'; }
    int num_;
};
 
void print_num(int i)
{
    std::cout << i << '\n';
}
 
int main()
{
    // store a free function
    std::function<void(int)> f_display = print_num;
    f_display(-9);
 
    // store a lambda
    std::function<void()> f_display_42 = []() { print_num(42); };
    f_display_42();
 
    // store the result of a call to std::bind
    std::function<void()> f_display_31337 = std::bind(print_num, 31337);
    f_display_31337();
 
    // store a call to a member function
    std::function<void(const Foo&, int)> f_add_display = &Foo::print_add;
    Foo foo(314159);
    f_add_display(foo, 1);
}

Résultat :

-9
42
31337
314160

[modifier] Voir aussi

exception levée si operator() est appelé sur un objet qui n'est pas un foncteur
(classe) [edit]
(C++11)
crée un foncteur permettant d'accéder à un membre de classe donné; le foncteur prend alors en paramètre une instance de la classe
(fonction générique) [edit]