Поделиться через


<functional>

Определяются функции библиотеки стандартных шаблонов (STL), которые помогают создавать объектов функцию, также известный как functors и их подшивки.Объект функции — это объект типа, который определяет operator().Функция объект может быть указатель на функцию, но как правило, объект используется для хранения дополнительных сведений, которые могут быть доступны при вызове функции.

#include <functional>

Заметки

Алгоритмы требуют два типа объектов function: унарные и двоичные.Унарный функции объектов требуется один аргумент и функция двоичные объекты требуют два аргумента.Объект функции и указателей на функции можно передавать в качестве предиката алгоритм, но функция объекты также адаптируемые и увеличить область, гибкость и эффективность STL.Указатель на функцию может не используется Если, например, значение требуется связать функцию перед передачей алгоритм.Адаптеры функции преобразования указателей на функции в адаптируемых функции объекты, которые могут быть привязаны к значению.Заголовок <functional> также содержит член функции адаптеров, которые позволяют вызывать как объекты адаптируемых функция функции члена.Функции адаптируемых, если они имеют объявления вложенных типов, указав их аргументов и возвращаемых типов.Стандарт C++ требует эта адаптивность реализуется все классы стандартный объект наследует от базового класса unary_function или binary_function.Функция объектов и их адаптеры позволяют STL для обновления существующих приложений и помочь интегрировать среду программирования C++ STL.

Расширения TR1

В Visual C++ реализация TR1 добавляются следующие возможности:

  • A вызова подписи — это имя возвращаемого типа, за которым следует список разделенных запятыми заключенных, или более типов аргументов.

  • A вызова оболочки — это объект типа вызова оболочки.

  • A вызова типа оболочки — это тип, который содержит вызываемый объект и поддерживает вызов операции, которая перенаправляет этот объект.

  • A вызываемый объект является объектом типа вызываемым.

  • A вызываемой типа — указатель на функцию, указатель на функцию-член, указатель на элемент данных или тип класса, объекты которых могут немедленно отображаются слева от оператора вызова функции.

  • A целевой объект является вызываемой объектов, хранящихся в объекте оболочку вызова.

Pseudo-function INVOKE(f, t1, t2, ..., tN) означает, что одно из следующих действий:

  • (t1.*f)(t2, ..., tN)При f — указатель на функцию-член класса, T и t1 — это объект типа T или ссылка на объект типа T или ссылку на объект типа, производного от T.

  • ((*t1).*f)(t2, ..., tN)При f — указатель на функцию-член класса, T и t1 не является одним из типов, описанных в предыдущем пункте.

  • t1.*fПри f — указатель на член данных класса T и t1 — это объект типа T или ссылка на объект типа T или ссылку на объект типа, производного от T.

  • (*t1).*fПри f — указатель на член данных класса класс T и t1 не является одним из типов, описанных в предыдущем пункте.

  • f(t1, t2, ..., tN)в других случаях.

Pseudo-function INVOKE(f, t1, t2, ..., tN, R) означает, что INVOKE(f, t1, t2, ..., tN) неявно преобразуются в R.

Если вызов оболочки слабые результирующий тип, типа его элементов типа result_type на основе типа T конечного объекта оболочки, как показано ниже:

  • Если T — указатель на функцию, result_type является синонимом типа возвращаемого значения T.

  • Если T — указатель на функцию-член, result_type является синонимом типа возвращаемого значения T.

  • Если T — указатель на элемент данных, result_type является синонимом для объявленного типа члена данных.

  • Если T — это тип класса, который имеет тип члена result_type, затем result_type является синонимом для T::result_type.

  • В противном случае — не член result_type.

Каждый вызов имеет конструктор копий.A простого вызова оболочки является вызовом оболочку, которая имеет назначение оператора и конструктор копирования и оператор присваивания которого не следует генерировать исключения.A Пересылка вызова оболочки — это вызов оболочки, который может быть вызван с помощью списка аргументов t1, t2, ..., tN, где каждый ti является lvalue.

Вызов оболочки, определенные в этот заголовок поддержки функции вызова операторы, имеющие аргументы типов T1, T2, ..., TN, где 0 <= N <= NMAX.В этой реализации значение NMAX — 10.

169de7b0.collapse_all(ru-ru,VS.110).gifКлассы

bad_function_call

Класс, который описывает исключение, указывающее, что вызов operator() на функция объекта не удалось, так как объект был пустым.

binary_negate

Класс шаблона, предоставляя функции-члена, который отрицает возвращаемое значение указанной функции двоичные.

binder1st

Шаблон класса, предоставляющий конструктор, который преобразует функции двоичный объект в объект функции унарный путем привязки первый аргумент функции двоичных указанное значение.

binder2nd

Шаблон класса, предоставляющий конструктор, который преобразует функции двоичный объект в объект функции унарный путем привязки второй аргумент функции двоичных указанное значение.

const_mem_fun_ref_t

Класс адаптера, позволяющий функцию-член const, не принимающего аргументов для вызова как объект функции унарный при инициализации с помощью аргумента ссылка.

const_mem_fun_t

Класс адаптера, позволяющий функцию-член const, не принимающего аргументов для вызова как объект функции унарный при инициализации с аргументом указателя.

const_mem_fun1_ref_t

Класс адаптера, позволяющий функцию-член const, принимающий один аргумент для вызова как объект двоичных функции при инициализации с помощью аргумента ссылка.

const_mem_fun1_t

Класс адаптера, позволяющий функцию-член const, принимающий один аргумент для вызова как объект двоичных функции при инициализации с аргументом указателя.

функция

Класс-оболочку вызываемый объект.

hash

Класс, который вычисляет хэш-код для значения.

is_bind_expression

Класс, который проверяет, если конкретный тип создается путем вызова bind.

is_placeholder

Класс, который проверяет, — это определенный тип.

mem_fun_ref_t

Класс адаптера, который позволяет non_const функция-член вызывается как объект функции унарный при инициализации с помощью аргумента ссылка без аргументов.

mem_fun_t

Класс адаптера, который позволяет non_const функция-член вызывается как объект функции унарный при инициализации с аргументом указателя без аргументов.

mem_fun1_ref_t

Класс адаптера, который позволяет non_const , принимающий один аргумент для вызова как объект двоичных функции при инициализации ссылочный аргумент функции-члена.

mem_fun1_t

Класс адаптера, который позволяет non_const , принимающий один аргумент для вызова как объект двоичных функции при инициализации с аргументом указателя функции-члена.

pointer_to_binary_function

Преобразует указатель на функцию двоичного адаптируемых двоичных функции.

pointer_to_unary_function

Преобразует указатель функции унарный адаптируемых унарный функции.

reference_wrapper

Класс-оболочку для ссылки.

result_of

Структура, содержащая возвращаемый тип вызываемой перенесенного объекта.

unary_negate

Класс шаблона, предоставляя функции-члена, которое инвертирует значение, возвращаемое функцией указанного унарного.

169de7b0.collapse_all(ru-ru,VS.110).gifФункции

bind

Связывает аргументы вызываемый объект.

bind1st

Вспомогательная функция шаблона, создает адаптер для преобразования объекта двоичного функции в объект функции унарный путем привязки первый аргумент функции двоичных указанное значение.

bind2nd

Вспомогательная функция шаблона, создает адаптер для преобразования объекта двоичного функции в объект функции унарный путем привязки второй аргумент функции двоичных указанное значение.

bit_and

Возвращает двоичное AND двух параметров.

bit_or

Возвращает двоичное или два параметра.

bit_xor

Возвращает двоичное исключающее или двух параметров.

cref

Создает const reference_wrapper из аргумента.

mem_fn

Создает оболочку простого вызова.

mem_fun

Вспомогательные функции шаблона используется для создания адаптеров объект функции для функций-членов при инициализации аргументов указателя.

mem_fun_ref

Вспомогательная функция шаблон, используемый для создания адаптеров объект функции для функций-членов при инициализации ссылочные аргументы.

not1

Возвращает дополнение унарный предикат.

not2

Возвращает дополнение двоичных предиката.

ptr_fun

Вспомогательная функция шаблона используется для унарного оператора convert и двоичная функция указатели, соответственно, в унарный и бинарный адаптируемых функции.

ref

Создает reference_wrapper из аргумента.

горячей замены

Меняет местами два function объектов.

169de7b0.collapse_all(ru-ru,VS.110).gifСтруктуры

binary_function

Пустой базовый класс, определяющий типы, которые могут наследоваться производного класса, который предоставляет функции двоичный объект.

Делит

Класс предоставляет стандартные функции объект, который выполняет арифметические операции деления на элементы заданного типа значения.

equal_to

Двоичный предикат, который проверяет, является ли значение указанного типа, равное значению другого типа.

больше

Двоичный предикат, который проверяет, является ли значение указанного типа больше, чем значение другого типа.

greater_equal

Двоичный предикат, который проверяет, является ли значение указанного типа, больше или равно значению другого типа.

меньше

Двоичный предикат, который проверяет, является ли значение указанного типа, меньше, чем значение другого типа.

less_equal

Двоичный предикат, который проверяет, является ли значение указанного типа, меньшим или равным значению другого типа.

logical_and

Класс предоставляет стандартные функции объект, который выполняет логическую операцию сочетании элементов заданного типа значения и тесты истину или falsity результат.

logical_not

Класс предоставляет стандартные функции объект, который выполняет логическую операцию отрицания элементов заданного типа значения и тесты истину или falsity результат.

logical_or

Класс предоставляет стандартные функции объект, который выполняет операции логического сложения элементов заданного типа значения и тесты истину или falsity результат.

минус

Класс предоставляет стандартные функции объект, который выполняет арифметическую операцию вычитания элементов заданного типа значения.

modulus

Класс предоставляет стандартные функции объект, который выполняет арифметические операции модуля элементов заданного типа значения.

Умножает

Класс предоставляет стандартные функции объект, который выполняет арифметическую операцию умножения элементов заданного типа значения.

отрицание

Класс предоставляет стандартные функции объекта, который возвращает отрицательное значение элемента.

not_equal_to

Двоичный предикат, который проверяет, является ли значение указанного типа не равно значению другого типа.

плюс

Класс предоставляет стандартные функции объект, который выполняет арифметическую операцию сложения элементов заданного типа значения.

unary_function

Пустой базовый класс, определяющий типы, которые могут наследоваться производного класса, который предоставляет унарные объект функции.

169de7b0.collapse_all(ru-ru,VS.110).gifОбъекты

_1

Местозаполнители подставляемые аргументы.

169de7b0.collapse_all(ru-ru,VS.110).gifОператоры

оператор ==

Запрещает сравнение на равенство вызываемой объектов.

оператор! =

Запрещает сравнение неравенства вызываемой объектов.

См. также

Ссылки

Потокобезопасность в стандартной библиотеке C++

Стандартная библиотека шаблонов

Другие ресурсы

члены<функционально>

Файлы заголовков