Namensräume
Varianten
Aktionen

std::function

Aus cppreference.com
< cpp‎ | utility‎ | functional
 
 
 
Function-Objekte
Funktionswrapper
function(C++11)
mem_fn(C++11)
bad_function_call(C++11)
Bindung
bind(C++11)
is_bind_expression(C++11)
is_placeholder(C++11)
_1, _2, _3, ...(C++11)
Referenzwrapper
reference_wrapper(C++11)
ref
cref
(C++11)
(C++11)
Operatorwrapper
Verneinung
Veraltete Binder und Adapter
unary_function(veraltet)
binary_function(veraltet)
ptr_fun(veraltet)
pointer_to_unary_function(veraltet)
pointer_to_binary_function(veraltet)
mem_fun(veraltet)
mem_fun_t
mem_fun1_t
const_mem_fun_t
const_mem_fun1_t
(veraltet)
(veraltet)
(veraltet)
(veraltet)
mem_fun_ref(veraltet)
mem_fun_ref_t
mem_fun1_ref_t
const_mem_fun_ref_t
const_mem_fun1_ref_t
(veraltet)
(veraltet)
(veraltet)
(veraltet)
binder1st
binder2nd
(veraltet)
(veraltet)
bind1st
bind2nd
(veraltet)
(veraltet)
 
 
Defined in header <functional>
template< class >
class function; /* undefined */
(seit C++11)
template< class R, class... Args >
class function<R(Args...)>
(seit C++11)

Das Klassen-Template std::function ist ein polymorpher Allzweck-Funktionswrapper. Instanzen von std::function können jedes aufrufbare Ziel speichern, kopieren, und aufrufen -- Funktionen, Lambda-Ausdrücke, bind Ausdrücke oder andere Funktionsobjekte.

Inhaltsverzeichnis

[Bearbeiten] Member Typen

Type Definition
result_type R
argument_type T falls sizeof...(Args)==1 und T der erste und einzige in Type in Args... ist
first_argument_type T1 falls sizeof...(Args)==2 und T1 der erste der beiden Typen in Args... ist
second_argument_type T2 falls sizeof...(Args)==2 und T2 der zweite der beiden Typen in Args... ist

[Bearbeiten] Member Funktionen

erzeugt eine neue Instanz von std::function
(öffentliche Elementfunktion) [edit]
zerstört eine std::function Instanz
(öffentliche Elementfunktion) [edit]
weist den Inhalt zu
(öffentliche Elementfunktion) [edit]
vertauscht die Inhalte
(öffentliche Elementfunktion) [edit]
weist ein neues Ziel zu
(öffentliche Elementfunktion) [edit]
prüft, ob ein gültiges Ziel enthalten ist
(öffentliche Elementfunktion) [edit]
ruft das Ziel auf
(öffentliche Elementfunktion) [edit]
Ziel Zugriff
erhält die typeid der gespeicherten Ziel eines std::function
Original:
obtains the typeid of the stored target of a std::function
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(öffentliche Elementfunktion) [edit]
beschafft einen Zeiger auf ein gespeichertes std::function Ziel
(öffentliche Elementfunktion) [edit]

[Bearbeiten] Nicht-Member Funktionen

spezialisiert den std::swap Algorithmus
(Funktions-Template) [edit]
vergleicht eine std::function mit std::nullptr
(Funktions-Template)

[Bearbeiten] Hilfsklassen

spezialisiert das std::uses_allocator Typenmerkmal (type trait)
(class Template-Spezialisierung) [edit]

[Bearbeiten] Beispiel

#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);
}

Output:

-9
42
31337
314160

[Bearbeiten] Siehe auch

Ausnahme, die beim Aufruf einer leeren std::function ausgelöst wird
(Klasse) [edit]
(C++11)
erzeugt ein Funktionsobjekt aus dem Zeiger auf einen Member
(Funktions-Template) [edit]