Udostępnij za pośrednictwem


<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

bad_function_call

Klasa, która opisuje generowany, aby wskazać, że wyjątek wywołanie operator() na Funkcja object nie powiodła się, ponieważ obiekt był pusty.

binary_negate

Klasa szablonu, zapewniając funkcji członka, który neguje wartość zwracana podanej funkcji binarne.

binder1st

Klasa szablonu, zapewniając konstruktora, który przekształca obiekt binarny funkcji obiekt funkcji jednoargumentowy wiążąc pierwszy argument funkcji binarne określona wartość.

binder2nd

Klasa szablonu, zapewniając konstruktora, który przekształca obiekt binarny funkcji obiekt funkcji jednoargumentowy wiążąc drugiego argumentu funkcja binarne określona wartość.

const_mem_fun_ref_t

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.

const_mem_fun_t

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.

const_mem_fun1_ref_t

Klasa adaptera pozwala const funkcji członka, który pobiera jeden argument nazwana jako obiekt binarny funkcji podczas inicjowania z argument odwołania.

const_mem_fun1_t

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.

Funkcja

Klasa, która otacza nieopłacona obiektu.

hash

Klasa, która oblicza kod skrótu dla wartości.

is_bind_expression

Klasa, która testuje określony typ jest generowany przez wywołanie bind.

is_placeholder

Klasa, która testy, jeśli określony typ jest symbolem zastępczym.

mem_fun_ref_t

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.

mem_fun_t

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.

mem_fun1_ref_t

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.

mem_fun1_t

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.

pointer_to_binary_function

Wskaźnik binarny funkcja konwertuje elastycznych funkcji binarne.

pointer_to_unary_function

Konwertuje funkcję elastycznych jednoargumentowy wskaźnik funkcji Jednoelementowy.

reference_wrapper

Klasa, która otacza odwołanie.

result_of

Struct, przechowujący zwracany typ obiektu nieopłacona zawinięty.

unary_negate

Klasa szablonu, zapewniając funkcji członka, który neguje wartość zwracana funkcji określonego jednoargumentowy.

Funkcje

BIND

Argumenty jest powiązana nieopłacona obiektu.

bind1st

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.

bind2nd

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.

bit_and

Zwraca wartość logiczną operację AND (operator binarny&) z tych dwóch parametrów.

bit_not

Zwraca wartość logiczną logiczne uzupełnienie (operator ~) parametru.

bit_or

Zwraca wartość logiczną lub logiczne (operator|) z tych dwóch parametrów.

bit_xor

Zwraca bitowe XOR logiczne (operator ^) z tych dwóch parametrów.

cref

Konstrukcje const reference_wrapper z argumentu.

mem_fn

Generuje otoki połączeń.

mem_fun

Używane do konstruowania adaptery obiekt funkcji dla funkcji element członkowski podczas inicjowania z argumentów wskaźnika funkcji szablonu pomocnika.

mem_fun_ref

Funkcję Pomocnik szablonu, używane do konstruowania adaptery obiekt funkcji dla funkcji element członkowski podczas inicjowania z argumentami odniesienia.

not1

Zwraca dopełnienie predykatu jednoelementowego.

not2

Zwraca dopełnienie predykatu dwuelementowego.

ptr_fun

Funkcję Pomocnik szablon używany do jednoargumentowy convert i funkcja binarne wskaźniki, odpowiednio, do elastycznych funkcji jednoargumentowe i binary.

REF

Konstrukcje reference_wrapper z argumentu.

swap

Zamień dwa function obiekty.

Strukturach

binary_function

Pusty klasy podstawowej, która definiuje typy, które mogą być dziedziczone przez pochodne klasy, która zawiera obiekt binarny funkcji.

dzieli

Klasa zawiera obiekt funkcji wstępnie zdefiniowanej, który wykonuje operacji arytmetycznej podział na elementy typu określonej wartości.

equal_to

Predykat dwuelementowy, który sprawdza, czy wartość określonego typu jest równa wartości innego typu.

większe

Predykat dwuelementowy, który sprawdza, czy wartość określonego typu jest większa niż wartość innego typu.

greater_equal

Predykat dwuelementowy, który sprawdza, czy wartość określonego typu jest większa niż lub równa wartości innego tego typu.

mniej

Predykat dwuelementowy, który sprawdza, czy wartość określonego typu jest mniejsza niż wartość innego typu.

less_equal

Predykat dwuelementowy, który sprawdza, czy wartość określonego typu jest mniejsza niż lub równa wartości innego tego typu.

logical_and

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.

logical_not

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.

logical_or

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.

minus

Klasa zawiera obiekt funkcji wstępnie zdefiniowanej, który wykonuje operacji arytmetycznej odejmowania na elementy typu określonej wartości.

MODULUS

Klasa zawiera obiekt funkcji wstępnie zdefiniowanej, który wykonuje działania arytmetyczne modulus na elementy typu określonej wartości.

Mnoży

Klasa zawiera obiekt funkcji wstępnie zdefiniowanej, który wykonuje operacji arytmetycznej mnożenia na elementy typu określonej wartości.

zanegować

Klasa zawiera obiekt funkcji wstępnie zdefiniowanej, który zwraca negatywne wartości elementu.

not_equal_to

Predykat dwuelementowy, który sprawdza, czy wartość określonego typu nie jest równa wartości innego typu.

plus

Klasa zawiera obiekt funkcji wstępnie zdefiniowanej, który wykonuje operacji arytmetycznej dodatek na elementy typu określonej wartości.

unary_function

Pusty klasy podstawowej, która definiuje typy, które mogą być dziedziczone przez pochodne klasy, która zawiera obiekt funkcji Jednoelementowy.

Obiekty

_1.._M

Symbole zastępcze dla wymiennych argumentów.

Operatory

operator==

Nie zezwala na równości porównywania wpłacone obiektów.

operator!=

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

Inne zasoby

<functional> Członkowie

Pliki nagłówkowe standardowej biblioteki języka C++