Namensräume
Varianten
Aktionen

std::function<R(Args...)>::operator()

Von cppreference.com
< cpp‎ | utility‎ | functional‎ | function
 
 
Dienstprogramm-Bibliotheken
Sprachunterstützung
Typunterstützung (Basistypen, RTTI)
Bibliotheks-Feature-Test-Makros (C++20)
Programm-Dienstprogramme
Variadische Funktionen
Coroutine-Unterstützung (C++20)
Vertragsunterstützung (C++26)
Drei-Wege-Vergleich
(C++20)
(C++20)(C++20)(C++20)  
(C++20)(C++20)(C++20)

Allgemeine Hilfsmittel
Relationale Operatoren (in C++20 veraltet)
 
Funktionsobjekte
Funktionsaufruf
(C++17)(C++23)
Identitätsfunktions-Objekt
(C++20)
Transparente Operator-Wrapper
(C++14)
(C++14)
(C++14)
(C++14)  
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)

Alte Binder und Adaptoren
(bis C++17*)
(bis C++17*)
(bis C++17*)
(bis C++17*)
(bis C++17*)(bis C++17*)(bis C++17*)(bis C++17*)
(bis C++20*)
(bis C++20*)
(bis C++17*)(bis C++17*)
(bis C++17*)(bis C++17*)

(bis C++17*)
(bis C++17*)(bis C++17*)(bis C++17*)(bis C++17*)
(bis C++20*)
(bis C++20*)
 
 
R operator()( Args... args ) const;
(seit C++11)

Ruft das gespeicherte aufrufbare Funktionsziel mit den Parametern args auf.

Entspricht INVOKE<R>(f, std::forward<Args>(args)...), wobei f das Zielobjekt von *this ist.

Inhalt

[bearbeiten] Parameter

args - Parameter, die an das gespeicherte aufrufbare Funktionsziel übergeben werden sollen

[bearbeiten] Rückgabewert

Nichts, wenn R void ist. Andernfalls der Rückgabewert des Aufrufs des gespeicherten aufrufbaren Objekts.

[bearbeiten] Ausnahmen

Wirft std::bad_function_call, wenn *this kein aufrufbares Funktionsziel speichert, d.h. !*this == true.

[bearbeiten] Beispiel

Das folgende Beispiel zeigt, wie std::function per Wert an andere Funktionen übergeben werden kann. Außerdem zeigt es, wie std::function Lambdas speichern kann.

#include <functional>
#include <iostream>
 
void call(std::function<int()> f) // can be passed by value
{ 
    std::cout << f() << '\n';
}
 
int normal_function()
{
    return 42;
}
 
int main()
{
    int n = 1;
    std::function<int()> f;
    try
    {
        call(f);
    }
    catch (const std::bad_function_call& ex)
    {
        std::cout << ex.what() << '\n';
    }
 
    f = [&n](){ return n; };
    call(f);
 
    n = 2;
    call(f);
 
    f = normal_function;
    call(f);
 
    std::function<void(std::string, int)> g;
    g = [](std::string str, int i) { std::cout << str << ' ' << i << '\n'; };
    g("Hi", 052);
}

Mögliche Ausgabe

bad_function_call
1
2
42
Hi 42

[bearbeiten] Siehe auch

ruft das Ziel auf
(public member function of std::move_only_function) [bearbeiten]
ruft die gespeicherte Funktion auf
(öffentliche Member-Funktion von std::reference_wrapper<T>) [bearbeiten]
die Ausnahme, die beim Aufruf einer leeren std::function ausgelöst wird
(Klasse) [bearbeiten]
(C++17)(C++23)
ruft jedes Callable-Objekt mit gegebenen Argumenten auf und der Möglichkeit, den Rückgabetyp anzugeben(seit C++23)
(Funktions-Template) [bearbeiten]