Freigeben über


<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.

169de7b0.collapse_all(de-de,VS.110).gifKlassen

bad_function_call

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.

binary_negate

Eine Vorlage-Klasse eine Memberfunktion, die den Rückgabewert einer angegebenen binären Funktion negiert bereitstellen.

binder1st

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.

binder2nd

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.

const_mem_fun_ref_t

Eine Adapterklasse, die eine const-Memberfunktion ermöglicht es, die keine Argumente als unärer Funktionsobjekt bei der Initialisierung mit einem Verweisargument aufgerufen werden.

const_mem_fun_t

Eine Adapterklasse, die eine const-Memberfunktion, die ohne Argumente aufgerufen werden, als unärer Funktionsobjekt ermöglicht bei der Initialisierung mit einem Zeigerargument akzeptiert.

const_mem_fun1_ref_t

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.

const_mem_fun1_t

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.

Funktion

Eine Klasse, die eine aufrufbare-Objekt umbrochen wird.

hash

Eine Klasse, die einen Hashcode für ein Wert berechnet.

is_bind_expression

Eine Klasse, die testet, ob ein bestimmter Typ, durch Aufrufen generiert wird bind.

is_placeholder

Eine Klasse, die testet, ob ein bestimmter Typ ein Platzhalter ist.

mem_fun_ref_t

Eine Adapterklasse, die ermöglicht eine Non_const Member-Funktion keine Argumente als unärer Funktionsobjekt bei der Initialisierung mit einem Verweisargument aufgerufen werden.

mem_fun_t

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.

mem_fun1_ref_t

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.

mem_fun1_t

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.

pointer_to_binary_function

Konvertiert einen binäre Funktionszeiger in eine anpassungsfähige binäre Funktion.

pointer_to_unary_function

Konvertiert einen unären Funktionszeiger in ein anpassungsfähiger unären-Funktion.

reference_wrapper

Eine Klasse, die einen Verweis umschließt.

result_of

Eine Struktur, die den Rückgabetyp eines eingebundenen callable-Objekts enthält.

unary_negate

Eine Vorlage-Klasse eine Memberfunktion, die den Rückgabewert einer Funktion angegebenen unären negiert bereitstellen.

169de7b0.collapse_all(de-de,VS.110).gifFunktionen

bind

Bindet Argumente callable-Objekt.

bind1st

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.

bind2nd

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.

BIT_AND

Gibt das binäre AND der beiden Parameter zurück.

BIT_OR

Gibt das binäre OR der beiden Parameter zurück.

BIT_XOR

Gibt das binäre XOR der beiden Parameter zurück.

cref

Erstellt ein Const reference_wrapper aus einem Argument.

mem_fn

Generiert einen einfachen Aufruf-Wrapper.

mem_fun

Vorlage Hilfsfunktionen verwendet, um Funktion Objekt Adapter für Member-Funktionen bei der Initialisierung mit Zeigerargumente zu erstellen.

mem_fun_ref

Eine Vorlage Hilfsfunktion verwendet, um Funktion Objekt Adapter für Member-Funktionen bei der Initialisierung mit Verweisargumente zu erstellen.

nicht

Gibt das Komplement des ein unäres Prädikat zurück.

not2

Gibt das Komplement des ein binäres Prädikat zurück.

ptr_fun

Eine Vorlage Hilfsfunktion zum Konvertieren unären und binären Funktion Zeiger, bzw. in unären und binären anpassungsfähige Funktionen.

ref

Erstellt ein reference_wrapper aus einem Argument.

Swap

Vertauscht zwei function Objekte.

169de7b0.collapse_all(de-de,VS.110).gifStrukturen

binary_function

Eine leere Basisklasse, die Typen definiert, die von abgeleiteten Klasse geerbt werden kann, die eine binäre Function-Objekt bereitstellt.

teilt

Die Klasse bietet ein vordefinierten Funktion-Objekt, das die arithmetische Operation Division Elemente eines Typs angegebenen Wert durchführt.

equal_to

Ein binäres Prädikat, das überprüft, ob ein Wert eines angegebenen Typs in einen anderen Wert dieses Typs gleich ist.

größer

Ein binäres Prädikat, das überprüft, ob ein Wert eines angegebenen Typs größer als ein anderer Wert dieses Typs ist.

greater_equal

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.

weniger

Ein binäres Prädikat, das überprüft, ob ein Wert eines angegebenen Typs kleiner als ein anderer Wert dieses Typs ist.

less_equal

Ein binäres Prädikat, das überprüft, ob ein Wert eines angegebenen Typs kleiner oder gleich einem anderen Wert dieses Typs ist.

logical_and

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.

logical_not

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.

logical_or

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.

minus

Die Klasse bietet ein vordefinierten Funktion-Objekt, das die arithmetische Operation Subtraktion Elemente eines Typs angegebenen Wert durchführt.

Modulo

Die Klasse bietet ein vordefinierten Funktion-Objekt, das die arithmetische Operation Modulo Elemente eines Typs angegebenen Wert durchführt.

multipliziert

Die Klasse bietet ein vordefinierten Funktion-Objekt, die arithmetische Operation Multiplikation auf Elemente eines Typs angegebenen Wert.

negieren

Die Klasse bietet ein vordefinierten Funktion-Objekt, das den negativen Wert ein Elementwert zurückgibt.

Not_Equal_To

Ein binäres Prädikat, das überprüft, ob ein Wert eines angegebenen Typs ist nicht gleich einem anderen Wert dieses Typs.

Plus

Die Klasse bietet ein vordefinierten Funktion-Objekt, das die arithmetische Operation der Addition Elemente eines Typs angegebenen Wert durchführt.

unary_function

Eine leere Basisklasse, die Typen definiert, die von abgeleiteten Klasse geerbt werden kann, die eine Funktionsobjekt unären bereitstellt.

169de7b0.collapse_all(de-de,VS.110).gifObjekte

_1

Platzhalter für ersetzbare Argumente.

169de7b0.collapse_all(de-de,VS.110).gifOperatoren

Operator ==

Verbietet Gleichheitsvergleich aufrufbare Objekte.

Operator! =

Verbietet Ungleichheitsvergleich aufrufbare Objekte.

Siehe auch

Referenz

Threadsicherheit in der C++-Standardbibliothek

Standardvorlagenbibliothek

Weitere Ressourcen

<functional> Member

Headerdateien