<functional>
Определяет стандартные функции библиотеки, что конструкция объекты функций справки, также известные как functors- и их привязки. Объект функции объект типа, который определяет operator(). Объект функции может быть указателем функции, но как правило, объект используется для хранения дополнительные сведения, можно обращаться во время вызова функции.
#include <functional>
Заметки
Алгоритмы требуют 2 типов объектов функции: унарный и бинарный. Унарные объекты функций требуется один аргумент, и бинарные объекты функций требуется 2 аргументов. Объект функции и указатели функций можно передавать в качестве предиката к алгоритму, но объекты функции также способна к адаптации и расширяют область, гибкость и повысить эффективность STL. Если, например, должны были должны быть привязанным к функции перед передавать с алгоритмом, указатель функции не может использоваться. Переходники функции преобразования указателей функций в способные к адаптации объекты функций, которые можно привязать к значению. Заголовок <functional> содержит также переходники функции-члена, позволяющие функции-члены, назначив как способные к адаптации объекты функций. Функции способна к адаптации, если они имеют объявления вложенных типов формулировать их аргументов и возвращаемых типов. Стандарт C++ требуется, чтобы эта приспособляемостьь реализована переполнен все стандартные классы объекта наследуется от базовых классов unary_function или binary_function. Объекты функций и их переходники позволяют STL в существующее приложение обновления и позволяют интегрировать STL в среды программирования C C++.
Реализация Visual C++ объектов включает функции в <functional>прозрачный functors оператора, специализации стандартных объектов функции и не принимает параметры шаблона и выполняет совершенное препровождение аргументов функции и повышает возврата результата. Эта функция часть стандартных техническую условий C ++14 черновик. Эти специализации шаблона не требуется указывать типы аргументов при вызове арифметических и сравнение, логических и побитовых functors оператора. Можно арифметический перегруженной функции, сравнение, логических и побитовых операторов для собственных типов или типов для разнородного получается из, а затем использовать прозрачные functors оператора в качестве аргументов функции. Например, если тип MyType реализует operator<, можно вызвать sort(my_collection.begin(), my_collection.end(), less<>()) вместо явного задания типа sort(my_collection.begin(), my_collection.end(), less<MyType>()).
Реализация C + 11 +/C ++14
Следующие функции добавляются в реализации Visual C++ + 11 +/C ++14:
сигнатура вызова имя возвращаемого типа и заключенную в скобки собой разделенный запятыми список аргументов ноль или более типов.
можно вызвать тип указатель на функцию, указателем на функцию-член, данных указателя на член, или тип класса, объекты которых могут быть расположено слева от оператора вызова функции.
можно вызвать объект объект можно вызвать типа.
тип оболочки вызова типа, содержащего вызываемую объектом и поддерживает операцию вызова, переадресует на этот объект.
программа-оболочка вызова объект типа оболочки вызова.
целевой объект можно вызвать объект удержатьый объектом программы-оболочки вызова.
Функция псевдодомен INVOKE(f, t1, t2, ..., tN) означает одно из следующих действий:
(t1.*f)(t2, ..., tN) при f функция указателя на член класса T и t1 объект типа T или ссылки на объект типа T или ссылки на объект типа производного от T.
((*t1).*f)(t2, ..., tN) при f функция указателя на член класса T и t1 не из типов, описанных в предыдущем элементе.
t1.*f при N == 1 и f данные указателя на член класса T и t1 объект типа T или ссылки на объект типа T или ссылки на объект типа производного от T.
(*t1).*f при N == 1 и f данные указателя на член класса T и t1 не из типов, описанных в предыдущем элементе.
f(t1, t2, ..., tN) во всех остальных случаях.
Функция псевдодомен 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 члена, то result_type синоним для T::result_type.
В противном случае ни один член result_type.
Каждая программа-оболочка вызова имеет конструктор перемещения и конструктор копии. простая программа-оболочка вызова программа-оболочка вызова, имеют оператор присваивания и оператор присваивания, конструктор копии, конструктор перемещения и не вызывает исключения. программа-оболочка вызова препровождения программа-оболочка вызова, могут вызываться с помощью произвольного списка аргументов и которая доставляет аргументов в создаватьому программу-оболочку можно вызвать объект как ссылки. Все аргументы rvalue выполнены как ссылки rvalue и аргументы значения доставлены в качестве ссылки значения.
Классы
Класс, в котором описывается исключение, вызванное, чтобы указать, что вызов operator() в объекте функция, так как объект не был пустым. |
|
Класс шаблона функции-члена, обеспечивая инвертирует возвращаемое значение указанной бинарной функции. |
|
Шаблонный класс, предоставляющий данный конструктор, который выполняет преобразование бинарный объект функции в унарный объект функции путем связывания первый аргумент бинарной функции указанное значение. |
|
Шаблонный класс, предоставляющий данный конструктор, который выполняет преобразование бинарный объект функции в унарный объект функции путем связывания второй аргумент функции бинарной указанное значение. |
|
Класс адаптера, который позволяет функцию-член const, не принимающего аргументов, для вызова функции в качестве унарного объект инициализирован с аргументом ссылки. |
|
Класс адаптера, который позволяет функцию-член const, не принимающего аргументов, для вызова функции в качестве унарного объект инициализирован с аргументом указателя. |
|
Класс адаптера, который позволяет функцию-член const, который принимает один аргумент, назначив как бинарный инициализированный объект функции с аргументом ссылки. |
|
Класс адаптера, который позволяет функцию-член const, который принимает один аргумент, назначив как бинарный инициализированный объект функции с аргументом указателя. |
|
Класс, который создает экземпляры можно вызвать объект. |
|
Класс, вычисляющий хэш-код для значения. |
|
Этот класс, если конкретный тип создается путем вызова bind. |
|
Этот класс, если конкретный тип заполнителя. |
|
Класс адаптера, который позволяет функцию-член non_const, не принимающего аргументов, для вызова функции в качестве унарного объект инициализирован с аргументом ссылки. |
|
Класс адаптера, который позволяет функцию-член non_const, не принимающего аргументов, для вызова функции в качестве унарного объект инициализирован с аргументом указателя. |
|
Класс адаптера, который позволяет функцию-член non_const, который принимает один аргумент, назначив как бинарный инициализированный объект функции с аргументом ссылки. |
|
Класс адаптера, который позволяет функцию-член non_const, который принимает один аргумент, назначив как бинарный инициализированный объект функции с аргументом указателя. |
|
Преобразование бинарный указатель функции в способную к адаптации бинарную функции. |
|
Преобразование унарный указатель функции в способную к адаптации унарную функции. |
|
Класс, который создает экземпляры ссылку. |
|
Структура, которая содержит тип возвращаемого значения создаватього программу-оболочку вызываемую объекта. |
|
Класс шаблона функции-члена, обеспечивая инвертирует возвращаемое значение указанной унарной функции. |
Функции
Привязывает аргументы можно вызвать в объект. |
|
Шаблоны вспомогательная функция, которая создает переходника для преобразования бинарный объект функции в унарный объект функции путем связывания первый аргумент бинарной функции указанное значение. |
|
Шаблоны вспомогательная функция, которая создает переходника для преобразования бинарный объект функции в унарный объект функции путем связывания второй аргумент функции бинарной указанное значение. |
|
Возвращает побитовые логические бинарный оператор&AND (2) параметров. |
|
Возвращает побитовых логических файлов (operator~) параметров. |
|
Возвращает операцию побитового логического ИЛИ (оператор|) 2 параметров. |
|
Возвращает логическое operator^ (побитовое исключающее ИЛИ) 2 параметров. |
|
Построение const reference_wrapper из аргумента. |
|
Демонстрирует простой программу-оболочку вызова. |
|
Шаблонные вспомогательной функции, используемые для построения переходники объекта функции для функций-членов, инициализируемый аргументов указателя. |
|
Шаблоны вспомогательная функция, используемая для создания объекта переходники функции для функций-членов, инициализируемый аргументами ссылки. |
|
Возвращает со унарного предиката. |
|
Возвращает со бинарного предиката. |
|
Шаблоны вспомогательная функция, используемая для преобразования и унарные бинарные указателей функций, соответственно, в унарные и бинарные способные к адаптации функции. |
|
Создает reference_wrapper из аргумента. |
|
Обмен 2 объекта function. |
структурам;
Пустой базовый класс, определяющий типы, которые наследуются производным классом, предоставляющим бинарный объект функции. |
|
Класс предоставляет предопределенный объект функции, который выполняет арифметическую операцию деления для элементов типа указанного значения. |
|
Бинарный предикат, выполняет ли значение указанного типа равно другое значение данного типа. |
|
Бинарный предикат, выполняет ли значение указанного типа больше другого значения этого типа. |
|
Бинарный предикат, выполняет ли значение указанного типа больше или равно другому значения данного типа. |
|
Бинарный предикат, выполняет ли значение указанного типа, чем другие значения этого типа. |
|
Бинарный предикат, выполняет ли значение указанного типа меньше или равно другому значения данного типа. |
|
Класс предоставляет предопределенный объект функции, который выполняет логическую операцию связи для элементов типа и тестов указанного значения правды или ложность результата. |
|
Класс предоставляет предопределенный объект функции, который выполняет логическую операцию отрицания над элементами типа и тестов указанного значения правды или ложность результата. |
|
Класс предоставляет предопределенный объект функции, который выполняет логическую операцию рассеченности элементов типа и тестов указанного значения правды или ложность результата. |
|
Класс предоставляет предопределенный объект функции, выполняющие арифметические операции вычитания для элементов типа указанного значения. |
|
Класс предоставляет предопределенный объект функции, выполняющие арифметические операции модуля для элементов типа указанного значения. |
|
Класс предоставляет предопределенный объект функции, выполняющие арифметические операции умножения элементов типа указанного значения. |
|
Класс предоставляет предопределенный объект функции у элемента, который возвращает значение. |
|
Бинарный предикат, выполняет ли значение указанного типа не равно другое значение данного типа. |
|
Класс предоставляет предопределенный объект функции, который выполняет арифметическую операцию сложения для элементов типа указанного значения. |
|
Пустой базовый класс, определяющий типы, которые наследуются производным классом, который предоставляет унарный объект функции. |
Объекты
Местозаполнители для заменяемых аргументов. |
Операторы
Сравнение на равенство отклоняет вызываемую объектов. |
|
Сравнение отклоняет неравенства вызываемую объектов. |
См. также
Ссылки
Потокобезопасность в стандартной библиотеке C++
Библиотека стандартных шаблонов