<functional>
Definiert (Standard Template Library, STL) Funktionen, mit deren Hilfe erstellen Function-Objekte, auch bekannt als funktoren und ihre Bindemittel.Eine Function-Objekt ist ein Objekt eines Typs, die definiert, operator().Eine Function-Objekt kann einen Funktionszeiger, aber das Objekt wird in der Regel, verwendet, um zusätzliche Informationen zu speichern, die während eines Funktionsaufrufs der zugegriffen werden kann.
#include <functional>
Hinweise
Algorithmen erfordern zwei Arten von Function-Objekte: unäre und binäre.Unäre Function-Objekte erfordern ein Argument, und binäre Funktionsobjekte benötigt zwei Argumente.Ein Funktionsobjekt und Funktionszeiger können als Prädikat übergeben werden, um einen Algorithmus, aber die Funktionsobjekte sind auch anpassungsfähig und erhöhen den Umfang, Flexibilität und Effizienz der STL.Wenn beispielsweise ein Wert erforderlich, eine Funktion gebunden werden, bevor es an einen Algorithmus übergeben wird, konnte kein Funktionszeiger verwendet werden.Funktion Adapter konvertieren Funktionszeiger in anpassungsfähige Funktion-Objekte, die an einen Wert gebunden werden können.Die Header-<functional> enthält auch Member-Funktion Adapter, die Memberfunktionen aufgerufen werden, als anpassungsfähige Funktionsobjekte zu ermöglichen.Funktionen sind anpassungsfähig, wenn sie die Deklarationen mit geschachteltem Typ ihr Argument angeben haben und Rückgabetypen.Der C++-Standard erfordert, dass diese Anpassungsfähigkeit implementiert wird, indem Sie alle standard-Objekt-Klassen, die von der Unary_function oder Binary_function Basisklassen erben.Function-Objekte und ihre Adapter ermöglichen die STL Aktualisierung vorhandene Anwendungen und die STL in der Programmiersprache C++-Umgebung zu integrieren.
TR1-Erweiterungen
Die folgenden Features sind in Visual C++-Implementierung von TR1 hinzugefügt:
A rufen Sie die Signatur ist der Name eines Typs gefolgt von einem in Klammern durch Kommas getrennte Liste von NULL oder mehr Argumenttypen.
A Wrapper aufrufen ist ein Objekt vom Typ Wrapper Aufruf.
A rufen Wrappertyp ist ein Typ, enthält ein Objekt aufgerufen und eine Aufruf-Operation, die an dieses Objekt unterstützt.
A aufrufbaren Objekt ist ein Objekt vom Typ aufgerufen.
A aufrufbaren Typ ist ein Zeiger auf Funktion, ein Zeiger auf Member-Funktion, ein Zeiger auf Daten oder ein Klassentyp, deren Objekte können links neben einem Funktionsaufrufoperator werden sofort angezeigt.
A Zielobjekt ist das callable-Objekt ein Aufruf Wrapper-Objekt.
Die Pseudo-function INVOKE(f, t1, t2, ..., tN) kann einen der folgenden Schritte:
(t1.*f)(t2, ..., tN)Wenn f ist ein Zeiger auf die Memberfunktion der Klasse T und t1 ist ein Objekt vom Typ T oder einen Verweis auf ein Objekt vom Typ T oder ein Verweis auf ein Objekt eines Typs aus T.
((*t1).*f)(t2, ..., tN)Wenn f ist ein Zeiger auf die Memberfunktion der Klasse T und t1 ist nicht mit einer der Typen, die im vorherigen Punkt beschrieben.
t1.*fWenn f ist ein Zeiger auf Daten der Klasse T und t1 ist ein Objekt vom Typ T oder einen Verweis auf ein Objekt vom Typ T oder ein Verweis auf ein Objekt eines Typs aus T.
(*t1).*fWenn f ist ein Zeiger auf Daten der Klasse T und t1 ist nicht mit einer der Typen, die im vorherigen Punkt beschrieben.
f(t1, t2, ..., tN)in allen anderen Fällen.
Die Pseudo-function INVOKE(f, t1, t2, ..., tN, R) bedeutet INVOKE(f, t1, t2, ..., tN) , der implizit umgewandelt R.
Wenn ein Call-Wrapper hat eine schwach Ergebnistyp, den Typ der Membertyp result_type ist auf der Grundlage des Typs T des Zielobjekts des Wrappers, wie folgt:
Wenn T ist ein Zeiger auf Funktion, result_type ist ein Synonym für den Rückgabetyp der T.
Wenn T ist ein Zeiger auf Member-Funktion result_type ist ein Synonym für den Rückgabetyp der T.
Wenn T ist ein Zeiger auf Datenmember, result_type ist ein Synonym für den deklarierten Typ des Datenelements.
Wenn T ist ein Klassentyp, der ein Mitglied hat result_type, dann result_type ist ein Synonym für T::result_type.
Andernfalls gibt es keine Member result_type.
Jeder Aufruf-Wrapper hat keinen Kopierkonstruktor.A einfacher Aufruf Wrapper ist ein Aufruf-Wrapper, der eine Zuweisung hat Operator und deren Kopierkonstruktor und Zuweisungsoperator Ausnahmen nicht ausgelöst.A Aufruf Wrapper weiterleiten ist ein Aufruf-Wrapper, der mit eine Argumentliste aufgerufen werden kann t1, t2, ..., tN, wobei jede ti l-Wert ist.
Die Call-Wrapper definiert in diesem Header Support Funktion Aufruf Operatoren, die Argumente der Typen haben T1, T2, ..., TN, wo 0 <= N <= NMAX.In dieser Implementierung den Wert der NMAX ist 10.
Klassen
Eine Klasse, die einer Ausnahme ausgelöst, um anzugeben, dass einen Aufruf beschreibt operator() auf ein Function Objekt ist fehlgeschlagen, da das Objekt leer war. |
|
Eine Vorlage-Klasse eine Memberfunktion, die den Rückgabewert einer angegebenen binären Funktion negiert bereitstellen. |
|
Eine Vorlage-Klasse bietet einen Konstruktor, der eine binäre Function-Objekt in ein Funktionsobjekt unären konvertiert, indem Sie das erste Argument der binären Funktion an einen angegebenen Wert binden. |
|
Eine Vorlage-Klasse bietet einen Konstruktor, der eine binäre Function-Objekt in ein Funktionsobjekt unären konvertiert, indem Sie das zweite Argument der binären Funktion an einen angegebenen Wert binden. |
|
Eine Adapterklasse, die eine const-Memberfunktion ermöglicht es, die keine Argumente als unärer Funktionsobjekt bei der Initialisierung mit einem Verweisargument aufgerufen werden. |
|
Eine Adapterklasse, die eine const-Memberfunktion, die ohne Argumente aufgerufen werden, als unärer Funktionsobjekt ermöglicht bei der Initialisierung mit einem Zeigerargument akzeptiert. |
|
Eine Adapterklasse, die eine const-Memberfunktion, die ein einzelnes Argument aufgerufen werden, als binäre Funktionsobjekt ermöglicht bei der Initialisierung mit einem Verweisargument akzeptiert. |
|
Eine Adapterklasse, die eine const-Memberfunktion, die ein einzelnes Argument aufgerufen werden, als binäre Funktionsobjekt ermöglicht bei der Initialisierung mit einem Zeigerargument akzeptiert. |
|
Eine Klasse, die eine aufrufbare-Objekt umbrochen wird. |
|
Eine Klasse, die einen Hashcode für ein Wert berechnet. |
|
Eine Klasse, die testet, ob ein bestimmter Typ, durch Aufrufen generiert wird bind. |
|
Eine Klasse, die testet, ob ein bestimmter Typ ein Platzhalter ist. |
|
Eine Adapterklasse, die ermöglicht eine Non_const Member-Funktion keine Argumente als unärer Funktionsobjekt bei der Initialisierung mit einem Verweisargument aufgerufen werden. |
|
Eine Adapterklasse, die ermöglicht eine Non_const -Memberfunktion, die ohne Argumente aufgerufen werden, als unärer Funktionsobjekt bei der Initialisierung mit einem Zeigerargument akzeptiert. |
|
Eine Adapterklasse, die ermöglicht eine Non_const -Memberfunktion, die ein einzelnes Argument aufgerufen werden, als binäre Funktionsobjekt bei der Initialisierung mit einem Verweisargument akzeptiert. |
|
Eine Adapterklasse, die ermöglicht eine Non_const -Memberfunktion, die ein einzelnes Argument aufgerufen werden, als binäre Funktionsobjekt bei der Initialisierung mit einem Zeigerargument akzeptiert. |
|
Konvertiert einen binäre Funktionszeiger in eine anpassungsfähige binäre Funktion. |
|
Konvertiert einen unären Funktionszeiger in ein anpassungsfähiger unären-Funktion. |
|
Eine Klasse, die einen Verweis umschließt. |
|
Eine Struktur, die den Rückgabetyp eines eingebundenen callable-Objekts enthält. |
|
Eine Vorlage-Klasse eine Memberfunktion, die den Rückgabewert einer Funktion angegebenen unären negiert bereitstellen. |
Funktionen
Bindet Argumente callable-Objekt. |
|
Eine Vorlage Hilfsfunktion, die Adapter eine binäre Function-Objekt in eine unäre Funktionsobjekt umwandeln, durch das erste Argument der binären Funktion an einen angegebenen Wert binden erstellt. |
|
Eine Vorlage Hilfsfunktion, die Adapter eine binäre Function-Objekt in ein Funktionsobjekt unären zu konvertieren, indem Sie das zweite Argument der binären Funktion an einen angegebenen Wert binden erstellt. |
|
Gibt das binäre AND der beiden Parameter zurück. |
|
Gibt das binäre OR der beiden Parameter zurück. |
|
Gibt das binäre XOR der beiden Parameter zurück. |
|
Erstellt ein Const reference_wrapper aus einem Argument. |
|
Generiert einen einfachen Aufruf-Wrapper. |
|
Vorlage Hilfsfunktionen verwendet, um Funktion Objekt Adapter für Member-Funktionen bei der Initialisierung mit Zeigerargumente zu erstellen. |
|
Eine Vorlage Hilfsfunktion verwendet, um Funktion Objekt Adapter für Member-Funktionen bei der Initialisierung mit Verweisargumente zu erstellen. |
|
Gibt das Komplement des ein unäres Prädikat zurück. |
|
Gibt das Komplement des ein binäres Prädikat zurück. |
|
Eine Vorlage Hilfsfunktion zum Konvertieren unären und binären Funktion Zeiger, bzw. in unären und binären anpassungsfähige Funktionen. |
|
Erstellt ein reference_wrapper aus einem Argument. |
|
Vertauscht zwei function Objekte. |
Strukturen
Eine leere Basisklasse, die Typen definiert, die von abgeleiteten Klasse geerbt werden kann, die eine binäre Function-Objekt bereitstellt. |
|
Die Klasse bietet ein vordefinierten Funktion-Objekt, das die arithmetische Operation Division Elemente eines Typs angegebenen Wert durchführt. |
|
Ein binäres Prädikat, das überprüft, ob ein Wert eines angegebenen Typs in einen anderen Wert dieses Typs gleich ist. |
|
Ein binäres Prädikat, das überprüft, ob ein Wert eines angegebenen Typs größer als ein anderer Wert dieses Typs ist. |
|
Ein binäres Prädikat, das überprüft, ob ein Wert eines angegebenen Typs größer als oder gleich einem anderen Wert dieses Typs ist. |
|
Ein binäres Prädikat, das überprüft, ob ein Wert eines angegebenen Typs kleiner als ein anderer Wert dieses Typs ist. |
|
Ein binäres Prädikat, das überprüft, ob ein Wert eines angegebenen Typs kleiner oder gleich einem anderen Wert dieses Typs ist. |
|
Die Klasse bietet ein vordefinierten Funktion-Objekt, das Elemente des angegebenen Werttyp und Tests für die Wahrheit oder Falsity des Ergebnisses die logische Operation Verbindung durchführt. |
|
Die Klasse bietet ein vordefinierten Funktion-Objekt, das Elemente des angegebenen Werttyp und Tests für die Wahrheit oder Falsity des Ergebnisses die logische Negation-Operation durchführt. |
|
Die Klasse bietet ein vordefinierten Funktion-Objekt, das Elemente des angegebenen Werttyp und Tests für die Wahrheit oder Falsity des Ergebnisses die logische Disjunktion-Operation durchführt. |
|
Die Klasse bietet ein vordefinierten Funktion-Objekt, das die arithmetische Operation Subtraktion Elemente eines Typs angegebenen Wert durchführt. |
|
Die Klasse bietet ein vordefinierten Funktion-Objekt, das die arithmetische Operation Modulo Elemente eines Typs angegebenen Wert durchführt. |
|
Die Klasse bietet ein vordefinierten Funktion-Objekt, die arithmetische Operation Multiplikation auf Elemente eines Typs angegebenen Wert. |
|
Die Klasse bietet ein vordefinierten Funktion-Objekt, das den negativen Wert ein Elementwert zurückgibt. |
|
Ein binäres Prädikat, das überprüft, ob ein Wert eines angegebenen Typs ist nicht gleich einem anderen Wert dieses Typs. |
|
Die Klasse bietet ein vordefinierten Funktion-Objekt, das die arithmetische Operation der Addition Elemente eines Typs angegebenen Wert durchführt. |
|
Eine leere Basisklasse, die Typen definiert, die von abgeleiteten Klasse geerbt werden kann, die eine Funktionsobjekt unären bereitstellt. |
Objekte
Platzhalter für ersetzbare Argumente. |
Operatoren
Verbietet Gleichheitsvergleich aufrufbare Objekte. |
|
Verbietet Ungleichheitsvergleich aufrufbare Objekte. |
Siehe auch
Referenz
Threadsicherheit in der C++-Standardbibliothek