Namensräume
Varianten

C + + Konzepte: FunctionObject

Aus cppreference.com
 
 
C + + Konzepte
Basic
Original:
Basic
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Library-Wide
Original:
Library-Wide
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Container
Original:
Container
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Container-Elemente
Original:
Container Elements
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Iterator
Original:
Iterator
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Zufallszahlen
Original:
Random Numbers
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Concurrency
Original:
Concurrency
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
BasicLockable(C++11)
Lockable(C++11)
TimedLockable(C++11)
Mutex(C++11)
TimedMutex(C++11)
Andere
Original:
Other
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
 

Ein Typ FunctionObject ist der Typ eines Objektes, der links vom Funktionsaufrufoperator benutzt werden kann.

Anforderungen

Der Typ T erfüllt die Anforderungen von FunctionObject falls

  • für T gilt std::is_object ist wahr,
  • ein gegebenes f den Typ T oder const T hat
  • und args eine passende Argumentenlist, die auch leer sein darf, ist.

Der folgende Aussdruck muß dann gültig sein:

Ausdruck Anforderung
f(args) performs a function call

Anmerkungen

Funktionen und Referenzen auf Funktionen sind keine Funktionsobjekte, können aber überall benutzt werden, wo Funktionsobjekte erwartet werden. Dieses ist möglich durch die implizite Umwandlung von Funktionen auf Zeiger.

Standard Bibliothek

Beispiele

zeigt verschiedene Typen von Funktionsobjekten

#include <iostream>

void foo(int x) { std::cout << "foo(" << x << ")\n"; }

int main()
{
    void(*fp)(int) = foo;
    fp(1); // calls foo using the pointer to function

    struct S {
        void operator()(int x) const { std::cout << "S::operator(" << x << ")\n"; }
    } s;
    s(2); // calls s.operator()
    s.operator()(3); // the same

    auto lam = [](int x) { std::cout << "lambda(" << x << ")\n"; };
    lam(4); // calls the lambda
    lam.operator()(5); // the same
}

Output:

foo(1)
S::operator(2)
S::operator(3)
lambda(4)
lambda(5)

Referenzen

ein Typ, für den der Aufrufoperator definiert ist
(Konzept)