<functional>
Definiuje standardowy szablon biblioteki (STL) funkcje, które pomagają skonstruować obiekty function, znane również jako funktorów – i ich spoiwa.Obiekt funkcji jest obiektem typu, który definiuje operator().Obiekt funkcji może być wskaźnik funkcji, ale bardziej zwykle obiekt jest używany do przechowywania dodatkowych informacji, które można uzyskać dostęp podczas wywołania funkcji.
#include <functional>
Uwagi
Algorytmy wymagają dwa typy obiektów funkcji: jednoargumentowe i binarny.Jednoargumentowy funkcji obiektów wymaga jednego argumentu i obiekty binarne funkcja wymaga dwóch argumentów.Obiekt funkcji i wskaźników funkcji mogą być przekazywane jako predykatu algorytmu, ale funkcja obiekty są również dostosowywalne i zwiększenia zakresu, elastyczności i skuteczności STL.Jeśli na przykład wartość potrzebne związanie funkcji przed przesłaniem do algorytmu, następnie wskaźnik funkcji nie można użyć.Funkcja adapterów przekonwertować wskaźników funkcji na obiekty dające funkcji, które może być powiązana z wartością.Nagłówek <functional> zawiera także adapterów funkcji Członkowskie zezwalające na funkcje składowe określany jako obiekty dające funkcji.Funkcje są przeszkolonej, jeśli mają one deklaracji typu zagnieżdżonego, określając ich argument i zwracanych typów.C++ Standard wymaga, aby ten zdolności adaptacyjnych jest wykonywane przez wszystkie klasy obiektu dziedziczą z klasy podstawowe unary_function lub binary_function.Funkcja obiektów i ich adaptery umożliwiają STL uaktualnić istniejące aplikacje i pomóc zintegrować STL środowisko programowania C++.
Rozszerzenia TR1
W implementacji języka Visual C++ tr1 dodaje się następujące funkcje:
A wywołania podpisu jest nazwą następuje lista rozdzielanych przecinkami posługujemy zero lub więcej typów argument typ zwracany.
A wywołania otoki jest obiektem typu otoki wywołania.
A Typ otoki transmisji jest typem, który posiada wpłacone obiektu i obsługuje operację wywołania, która przesyła dalej do tego obiektu.
A wpłacone obiektu jest obiektem typu żądanie.
A wpłacone typu jest wskaźnik do funkcji, wskaźnik do funkcji składowej, wskaźnik do danych lub typu klasy, w których obiekty można wyświetlane natychmiast po lewej stronie operatora wywołania funkcji.
A obiekt docelowy jest obiektem wpłacone posiadaniu obiektu otoki wywołania.
Pseudo-function INVOKE(f, t1, t2, ..., tN) oznacza jedną z następujących czynności:
(t1.*f)(t2, ..., tN)gdy f jest wskaźnik do funkcji składowej klasy T i t1 jest obiektem typu T lub odwołanie do obiektu typu T lub odwołanie do obiektu typu uzyskanych z T.
((*t1).*f)(t2, ..., tN)gdy f jest wskaźnik do funkcji składowej klasy T i t1 nie jest jednym z rodzajów opisanych w poprzedniej pozycji.
t1.*fgdy f jest wskaźnik do danych klasy T i t1 jest obiektem typu T lub odwołanie do obiektu typu T lub odwołanie do obiektu typu uzyskanych z T.
(*t1).*fgdy f jest wskaźnik do danych klasy klasy T i t1 nie jest jednym z rodzajów opisanych w poprzedniej pozycji.
f(t1, t2, ..., tN)w pozostałych przypadkach.
Pseudo-function INVOKE(f, t1, t2, ..., tN, R) oznacza INVOKE(f, t1, t2, ..., tN) niejawnie konwertowane na R.
Jeśli otoki wywołanie Typ słabych wyników, typ jej typ członka result_type jest na podstawie typu T obiektu docelowego z otoką, w następujący sposób:
Jeśli T jest wskaźnik do funkcji result_type jest synonimem zwracany typ T.
Jeśli T jest wskaźnik do funkcji składowej result_type jest synonimem zwracany typ T.
Jeśli T jest wskaźnik do elementu danych, result_type jest synonimem dla deklarowanych typu elementu danych.
Jeśli T jest typu klasy, która ma typ członka result_type, następnie result_type jest synonimem T::result_type.
W przeciwnym wypadku nie istnieje żaden członek nie result_type.
Każdy otoki wywołanie ma konstruktora kopii.A otoki proste wywołanie jest otoką wywołanie, że operator i którego Konstruktor kopiujący i operator przypisania nie generują wyjątki przydziału.A przekazywanie otoki wywołanie jest otoką wywołanie, który można wywołać przy użyciu listy argumentów t1, t2, ..., tN, gdzie każdy ti jest lvalue.
Otok wywołanie zdefiniowane w ten nagłówek obsługi funkcji wywołania operatorów, którzy mają argumenty typów T1, T2, ..., TN, gdzie 0 <= N <= NMAX.W tej implementacji wartość NMAX wynosi 10.
Klasy
Klasa, która opisuje wyjątek, aby wskazać, że wywołanie operator() na funkcji obiektu nie powiodło się, ponieważ obiekt był pusty. |
|
Klasa szablonu, zapewniając funkcji składowej, który neguje wartość zwracaną przez funkcję binarny. |
|
Klasa szablonu dostarczanie konstruktora, który konwertuje obiekt binarny funkcji obiekt funkcji jednoargumentowe wiążąc pierwszy argument funkcji binarne określonej wartości. |
|
Klasa szablonu dostarczanie konstruktora, który konwertuje obiekt binarny funkcji obiekt funkcji jednoargumentowe wiążąc drugiego argumentu funkcja binarne określonej wartości. |
|
Klasa karta umożliwiająca funkcję Członkowskie const nie przyjmuje żadnych argumentów, określany jako obiekt funkcji jednoargumentowe, gdy inicjowany jako argumentu. |
|
Klasa karty, która umożliwia const funkcji składowej, który nie przyjmuje żadnych argumentów, określany jako obiekt funkcji jednoargumentowe podczas inicjowania z argumentem wskaźnika. |
|
Klasa karty, która umożliwia const funkcji składowej, który pobiera jeden argument, określany jako obiekt binarny funkcji inicjowany jako argumentu. |
|
Klasa karty, która umożliwia const funkcji składowej, który pobiera jeden argument, określany jako obiekt binarny funkcji zainicjowana z argumentem wskaźnika. |
|
Klasa, która otacza obiekt wpłacone. |
|
Klasa, która oblicza kod wartość mieszania. |
|
Klasa, która testuje określonego typu wygenerowany przez wywołanie bind. |
|
Klasa, która testów, jeśli określony typ jest symbolem zastępczym. |
|
Klasa karty, która umożliwia non_const Członkowskich funkcji, która nie przyjmuje żadnych argumentów, określany jako obiekt funkcji jednoargumentowe, gdy inicjowany jako argumentu. |
|
Klasa karty, która umożliwia non_const Członkowskich funkcji, która nie przyjmuje żadnych argumentów, określany jako obiekt funkcji jednoargumentowe podczas inicjowania z argumentem wskaźnika. |
|
Klasa karty, która umożliwia non_const Członkowskich funkcji, która pobiera jeden argument, określany jako obiekt binarny funkcji inicjowany jako argumentu. |
|
Klasa karty, która umożliwia non_const Członkowskich funkcji, która pobiera jeden argument, określany jako obiekt binarny funkcji zainicjowana z argumentem wskaźnika. |
|
Wskaźnik binarny funkcji konwertuje przeszkolonej funkcji binarny. |
|
Konwertuje funkcję przeszkolonej jednoargumentowe wskaźnik funkcji jednoargumentowe. |
|
Klasa, która otacza odwołanie. |
|
Struct, przechowującą zwracany typ obiektu wpłacone zawinięty. |
|
Dostarczanie funkcji składowej, który neguje wartość zwracana funkcji jednoargumentowe określonej klasy szablonu. |
Funkcje
Wiąże obiekt wpłacone argumentów. |
|
Funkcja szablonu pomocnika, która tworzy adaptera, aby przekonwertować obiekt binarny funkcji obiekt funkcji jednoargumentowe wiążąc pierwszy argument funkcji binarne określonej wartości. |
|
Funkcja szablonu pomocnika, która tworzy adaptera, aby przekonwertować obiekt binarny funkcji obiekt funkcji jednoargumentowe wiążąc drugiego argumentu funkcja binarne określonej wartości. |
|
Zwraca binarne i dwóch parametrów. |
|
Zwraca binarny lub dwóch parametrów. |
|
Zwraca binarne XOR dwóch parametrów. |
|
Konstrukcje const reference_wrapper z argumentu. |
|
Generuje otoki proste wywołanie. |
|
Używane do konstruowania adapterów obiektu funkcji dla funkcji elementów członkowskich, gdy inicjowany z argumentów wskaźnik funkcji szablonu pomocnika. |
|
Funkcja szablonu pomocnika wykorzystywanych do konstruowania adapterów obiektu funkcji dla funkcji elementów członkowskich, gdy inicjowany z argumentami odniesienia. |
|
Zwraca uzupełnienie predykatu jednoelementowego. |
|
Zwraca uzupełnienie predykatu dwuelementowego. |
|
Funkcja szablonu pomocnika używane do jednoargumentowe Konwertuj i binarne funkcji wskaźniki, odpowiednio do jednoargumentowe i binarne Dostosowywalne funkcje. |
|
Konstrukcje reference_wrapper z argumentu. |
|
Zamienia dwóch function obiektów. |
Strukturach
Pusty klasa podstawowa definiujący typy, które mogą być dziedziczone przez odziedziczonej klasy, która zawiera obiekt binarny funkcji. |
|
Klasa zawiera obiekt wstępnie zdefiniowanych funkcji, który wykonuje operacji arytmetycznej podział na elementy typu określonej wartości. |
|
Predykatu dwuelementowego sprawdza, czy wartość określonego typu jest równa wartości innego typu. |
|
Predykatu dwuelementowego sprawdza, czy wartość określonego typu jest większa niż wartość innego typu. |
|
Predykatu dwuelementowego sprawdza, czy wartość określonego typu jest większa lub równa wartości innego typu. |
|
Predykatu dwuelementowego sprawdza, czy wartość określonego typu jest mniejsza niż wartość innego typu. |
|
Predykatu dwuelementowego sprawdza, czy wartość określonego typu jest mniejsza lub równa wartości innego typu. |
|
Klasa zawiera obiekt wstępnie zdefiniowanych funkcji, który wykonuje operację logiczną połączeniu na elementy typu określoną wartość i testy na prawdę lub FAŁSZ wynik. |
|
Klasa zawiera obiekt wstępnie zdefiniowanych funkcji, która wykonuje operację logiczną negacji na elementy typu określoną wartość i testy na prawdę lub FAŁSZ wynik. |
|
Klasa zawiera obiekt wstępnie zdefiniowanych funkcji, która wykonuje operację logiczną alternatywę na elementy typu określoną wartość i testy na prawdę lub FAŁSZ wynik. |
|
Klasa zawiera obiekt wstępnie zdefiniowanych funkcji, który wykonuje operacji arytmetycznej odejmowanie na elementy typu określonej wartości. |
|
Klasa zawiera obiekt wstępnie zdefiniowanych funkcji, który wykonuje operacji arytmetycznej moduł na elementy typu określonej wartości. |
|
Klasa zawiera obiekt wstępnie zdefiniowanych funkcji, który wykonuje operacji arytmetycznej mnożenia na elementy typu określonej wartości. |
|
Klasa zawiera obiekt wstępnie zdefiniowanych funkcji, który zwraca wartość ujemną wartość elementu. |
|
Predykatu dwuelementowego sprawdza, czy wartość określonego typu nie jest równa wartości innego typu. |
|
Klasa zawiera obiekt wstępnie zdefiniowanych funkcji, który wykonuje operacji arytmetycznej dodanie elementów typu określonej wartości. |
|
Pusty klasa podstawowa definiujący typy, które mogą być dziedziczone przez odziedziczonej klasy, która zawiera obiekt funkcji jednoargumentowe. |
Obiekty
Symbole zastępcze dla wymiennych argumentów. |
Operatory
Nie zezwala na porównanie równości wpłacone obiektów. |
|
Uniemożliwia porównania nierówności wpłacone obiektów. |
Zobacz też
Informacje
Bezpieczeństwo wątków w standardowa biblioteka języka C++
Standardowa biblioteka szablonu
Inne zasoby
<functional> Członkowie