<functional>
Określa funkcje biblioteki standardowej, które pomagają skonstruować obiekty function— również znany jako funktory — 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ć podczas wywołania funkcji.
#include <functional>
Uwagi
Algorytmy, wymagają dwa typy obiektów funkcji: jednoargumentowe i binarne.Jednoargumentowy obiekty funkcja wymaga jednego argumentu, a obiekty binarne funkcja wymaga dwóch argumentów.Obiekt funkcji i wskaźników funkcji mogą być przekazywane jako predykat z algorytmem, ale funkcja obiekty są również dostosowywalne i zwiększyć zakres, elastyczność i efektywność STL.Jeśli na przykład wartość potrzebne powiązać funkcję przed przesłaniem do algorytmu, następnie wskaźnik funkcji nie można użyć.Funkcja adaptery Konwertowanie obiektów sal konferencyjnych, które mogą być powiązane z wartością wskaźników funkcji.Nagłówek <funkcjonalne> zawiera także adaptery funkcja Członkowskie zezwalające na wywoływanie jako obiekty sal konferencyjnych funkcji Członkowskich.Funkcje są dostosowane, jeżeli mają one deklaracji typu zagnieżdżonego określenie ich argument i zwracanych typów.C++ Standard wymaga, że tej zdolności adaptacyjnych jest wykonywane przez posiadanie wszystkich klas obiektów standardowych dziedziczą z klasy podstawowej unary_function lub binary_function.Funkcje jako obiekty i ich adaptery pozwalają STL uaktualnić istniejące aplikacje i pomóc zintegrować środowisko programowania C++ STL.
Visual C++ Realizacji funkcji obiektów w <funkcjonalne> obejmuje funktory przezroczyste operatora, które są specjalizacje standardu działać obiekty i nie mają żadnych parametrów szablonu i wykonywania przekazywania argumentów funkcji i doskonałe zwrotu wynik.Ta funkcja jest częścią C ++ 14 projekt standardowej specyfikacji.Specjalizacje szablon te nie wymagają określić typy argumentów, po wywołaniu arytmetyczne, porównania i logicznych i funktory operatory operator.Mogą przeciążać arytmetyczne, porównania i logicznych lub operatory bitowe własne typy lub heterogenicznych kombinacji typów, a następnie użyj funktory przezroczyste operator jako argumenty funkcji.Na przykład jeśli Twój typ MyType implementuje operator<, można wywołać sort(my_collection.begin(), my_collection.end(), less<>()) zamiast jawnego określania typu sort(my_collection.begin(), my_collection.end(), less<MyType>()).
C ++ 11 / C ++ 14 implementacji
W implementacji języka Visual C++, C ++ 11 / C ++ 14 dodaje się następujące funkcje:
A wywołania podpis jest nazwą typu zwracanego następuje ujęte w nawiasy rozdzielana przecinkami lista zero lub więcej typów argumentów.
A typu nieopłacona jest wskaźnik do funkcji, wskaźnik do funkcji członka, wskaźnik do danych elementu członkowskiego lub typu klasy, których obiekty mogą się pojawiać natychmiast na lewo od operatora wywołania funkcji.
A nieopłacona obiektu jest obiektem typu wpłacone.
A połączenie typu otoki jest typem, który posiada nieopłacona obiektu oraz obsługę operacji wywołania, który przesyła dalej do tego obiektu.
A wywołania otoki jest obiektem typu otoki wywołania.
A obiekt docelowy jest obiektem nieopłacona w posiadaniu obiektu wywołania.
Pseudo-funkcja INVOKE(f, t1, t2, ..., tN) oznacza to 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 pochodzą 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 N == 1 i f jest wskaźnik do danych elementu członkowskiego klasy T i t1 jest obiektem typu T lub odwołanie do obiektu typu T lub odwołanie do obiektu typu pochodzą z T.
(*t1).*fGdy N == 1 i f jest wskaźnik do danych elementu członkowskiego klasy T i t1 nie jest jednym z rodzajów opisanych w poprzedniej pozycji.
f(t1, t2, ..., tN)we wszystkich innych przypadkach.
Pseudo-funkcja INVOKE(f, t1, t2, ..., tN, R) oznacza INVOKE(f, t1, t2, ..., tN) niejawnie konwertowane na R.
Jeśli ma otoki wywołanie Typ słabych wyników, typ jej typ elementu członkowskiego result_type jest oparty na typie T obiektu docelowego opakowania, 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 członka, result_type jest synonimem zwracany typ T.
Jeśli T jest typu klasy, która ma typ elementu członkowskiego result_type, następnie result_type jest synonimem T::result_type.
W przeciwnym wypadku nie ma żadnego członka result_type.
Każdy otoki wywołanie ma Konstruktor przenoszący i Konstruktor kopiujący.A otoki proste wywołanie jest otoką wywołanie zawierającego przypisania operatora i którego Konstruktor kopiujący, Konstruktor przenoszący i operator przypisania nie generują wyjątki.A przesyłania dalej otoki wywołanie jest otoką wywołania, które można wywołać za pomocą listy arbitralnej argumentów i dostarcza argumentów do obiektu nieopłacona zawinięty jako odniesienia.Wszystkie argumenty r-wartości są dostarczane jako referencję, a argumenty lvalue dostarczane są jako odniesienia do lvalue.
Klasy
Klasa, która opisuje generowany, aby wskazać, że wyjątek wywołanie operator() na Funkcja object nie powiodła się, ponieważ obiekt był pusty. |
|
Klasa szablonu, zapewniając funkcji członka, który neguje wartość zwracana podanej funkcji binarne. |
|
Klasa szablonu, zapewniając konstruktora, który przekształca obiekt binarny funkcji obiekt funkcji jednoargumentowy wiążąc pierwszy argument funkcji binarne określona wartość. |
|
Klasa szablonu, zapewniając konstruktora, który przekształca obiekt binarny funkcji obiekt funkcji jednoargumentowy wiążąc drugiego argumentu funkcja binarne określona wartość. |
|
Klasa adaptera pozwala const funkcji członka, który nie przyjmuje żadnych argumentów nazwana jako obiekt funkcji jednoargumentowy podczas inicjowania z argument odwołania. |
|
Klasa adaptera, który umożliwia const funkcji członka, który nie przyjmuje żadnych argumentów nazwana jako obiekt funkcji jednoargumentowy podczas inicjowania z argumentem wskaźnika. |
|
Klasa adaptera pozwala const funkcji członka, który pobiera jeden argument nazwana jako obiekt binarny funkcji podczas inicjowania z argument odwołania. |
|
Klasa adaptera, który umożliwia const funkcji członka, który pobiera jeden argument nazwana jako obiekt binarny funkcji podczas inicjowania z argumentem wskaźnika. |
|
Klasa, która otacza nieopłacona obiektu. |
|
Klasa, która oblicza kod skrótu dla wartości. |
|
Klasa, która testuje określony typ jest generowany przez wywołanie bind. |
|
Klasa, która testy, jeśli określony typ jest symbolem zastępczym. |
|
Klasa adaptera, który umożliwia non_const funkcji członka, który nie przyjmuje żadnych argumentów nazwana jako obiekt funkcji jednoargumentowy podczas inicjowania z argument odwołania. |
|
Klasa adaptera, który umożliwia non_const funkcji członka, który nie przyjmuje żadnych argumentów nazwana jako obiekt funkcji jednoargumentowy podczas inicjowania z argumentem wskaźnika. |
|
Klasa adaptera, który umożliwia non_const funkcji członka, który pobiera jeden argument nazwana jako obiekt binarny funkcji podczas inicjowania z argument odwołania. |
|
Klasa adaptera, który umożliwia non_const funkcji członka, który pobiera jeden argument nazwana jako obiekt binarny funkcji podczas inicjowania z argumentem wskaźnika. |
|
Wskaźnik binarny funkcja konwertuje elastycznych funkcji binarne. |
|
Konwertuje funkcję elastycznych jednoargumentowy wskaźnik funkcji Jednoelementowy. |
|
Klasa, która otacza odwołanie. |
|
Struct, przechowujący zwracany typ obiektu nieopłacona zawinięty. |
|
Klasa szablonu, zapewniając funkcji członka, który neguje wartość zwracana funkcji określonego jednoargumentowy. |
Funkcje
Argumenty jest powiązana nieopłacona obiektu. |
|
Funkcja szablon helper, która tworzy adaptera, aby przekonwertować obiekt binarny funkcji na obiekt funkcji jednoargumentowy wiążąc pierwszy argument funkcji binarne określonej wartości. |
|
Funkcja szablon helper, która tworzy adaptera, aby przekonwertować obiekt binarny funkcji na obiekt funkcji jednoargumentowy wiążąc drugiego argumentu funkcja binarne określonej wartości. |
|
Zwraca wartość logiczną operację AND (operator binarny&) z tych dwóch parametrów. |
|
Zwraca wartość logiczną logiczne uzupełnienie (operator ~) parametru. |
|
Zwraca wartość logiczną lub logiczne (operator|) z tych dwóch parametrów. |
|
Zwraca bitowe XOR logiczne (operator ^) z tych dwóch parametrów. |
|
Konstrukcje const reference_wrapper z argumentu. |
|
Generuje otoki połączeń. |
|
Używane do konstruowania adaptery obiekt funkcji dla funkcji element członkowski podczas inicjowania z argumentów wskaźnika funkcji szablonu pomocnika. |
|
Funkcję Pomocnik szablonu, używane do konstruowania adaptery obiekt funkcji dla funkcji element członkowski podczas inicjowania z argumentami odniesienia. |
|
Zwraca dopełnienie predykatu jednoelementowego. |
|
Zwraca dopełnienie predykatu dwuelementowego. |
|
Funkcję Pomocnik szablon używany do jednoargumentowy convert i funkcja binarne wskaźniki, odpowiednio, do elastycznych funkcji jednoargumentowe i binary. |
|
Konstrukcje reference_wrapper z argumentu. |
|
Zamień dwa function obiekty. |
Strukturach
Pusty klasy podstawowej, która definiuje typy, które mogą być dziedziczone przez pochodne klasy, która zawiera obiekt binarny funkcji. |
|
Klasa zawiera obiekt funkcji wstępnie zdefiniowanej, który wykonuje operacji arytmetycznej podział na elementy typu określonej wartości. |
|
Predykat dwuelementowy, który sprawdza, czy wartość określonego typu jest równa wartości innego typu. |
|
Predykat dwuelementowy, który sprawdza, czy wartość określonego typu jest większa niż wartość innego typu. |
|
Predykat dwuelementowy, który sprawdza, czy wartość określonego typu jest większa niż lub równa wartości innego tego typu. |
|
Predykat dwuelementowy, który sprawdza, czy wartość określonego typu jest mniejsza niż wartość innego typu. |
|
Predykat dwuelementowy, który sprawdza, czy wartość określonego typu jest mniejsza niż lub równa wartości innego tego typu. |
|
Klasa zawiera obiekt funkcji wstępnie zdefiniowanej, który wykonuje operację logiczną o połączeniu na elementy wartość określonego typu i testy dla prawdy lub fałszu wynik. |
|
Klasa zawiera obiekt funkcji wstępnie zdefiniowanej, który wykonuje operację logiczną negacji na elementy wartość określonego typu i testy dla prawdy lub fałszu wynik. |
|
Klasa zawiera obiekt funkcji wstępnie zdefiniowanej, który wykonuje operację logiczną alternatywę na elementy wartość określonego typu i testy dla prawdy lub fałszu wynik. |
|
Klasa zawiera obiekt funkcji wstępnie zdefiniowanej, który wykonuje operacji arytmetycznej odejmowania na elementy typu określonej wartości. |
|
Klasa zawiera obiekt funkcji wstępnie zdefiniowanej, który wykonuje działania arytmetyczne modulus na elementy typu określonej wartości. |
|
Klasa zawiera obiekt funkcji wstępnie zdefiniowanej, który wykonuje operacji arytmetycznej mnożenia na elementy typu określonej wartości. |
|
Klasa zawiera obiekt funkcji wstępnie zdefiniowanej, który zwraca negatywne wartości elementu. |
|
Predykat dwuelementowy, który sprawdza, czy wartość określonego typu nie jest równa wartości innego typu. |
|
Klasa zawiera obiekt funkcji wstępnie zdefiniowanej, który wykonuje operacji arytmetycznej dodatek na elementy typu określonej wartości. |
|
Pusty klasy podstawowej, która definiuje typy, które mogą być dziedziczone przez pochodne klasy, która zawiera obiekt funkcji Jednoelementowy. |
Obiekty
Symbole zastępcze dla wymiennych argumentów. |
Operatory
Nie zezwala na równości porównywania wpłacone obiektów. |
|
Nie zezwala na porównania nierówności nieopłacona obiektów. |
Zobacz też
Informacje
Bezpieczeństwo wątku w standardowej bibliotece C++
Standardowa biblioteka szablonów