<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.
Классы
Класс, который описывает исключение, указывающее, что вызов operator() на функция объекта не удалось, так как объект был пустым. |
|
Класс шаблона, предоставляя функции-члена, который отрицает возвращаемое значение указанной функции двоичные. |
|
Шаблон класса, предоставляющий конструктор, который преобразует функции двоичный объект в объект функции унарный путем привязки первый аргумент функции двоичных указанное значение. |
|
Шаблон класса, предоставляющий конструктор, который преобразует функции двоичный объект в объект функции унарный путем привязки второй аргумент функции двоичных указанное значение. |
|
Класс адаптера, позволяющий функцию-член const, не принимающего аргументов для вызова как объект функции унарный при инициализации с помощью аргумента ссылка. |
|
Класс адаптера, позволяющий функцию-член const, не принимающего аргументов для вызова как объект функции унарный при инициализации с аргументом указателя. |
|
Класс адаптера, позволяющий функцию-член const, принимающий один аргумент для вызова как объект двоичных функции при инициализации с помощью аргумента ссылка. |
|
Класс адаптера, позволяющий функцию-член const, принимающий один аргумент для вызова как объект двоичных функции при инициализации с аргументом указателя. |
|
Класс-оболочку вызываемый объект. |
|
Класс, который вычисляет хэш-код для значения. |
|
Класс, который проверяет, если конкретный тип создается путем вызова bind. |
|
Класс, который проверяет, — это определенный тип. |
|
Класс адаптера, который позволяет non_const функция-член вызывается как объект функции унарный при инициализации с помощью аргумента ссылка без аргументов. |
|
Класс адаптера, который позволяет non_const функция-член вызывается как объект функции унарный при инициализации с аргументом указателя без аргументов. |
|
Класс адаптера, который позволяет non_const , принимающий один аргумент для вызова как объект двоичных функции при инициализации ссылочный аргумент функции-члена. |
|
Класс адаптера, который позволяет non_const , принимающий один аргумент для вызова как объект двоичных функции при инициализации с аргументом указателя функции-члена. |
|
Преобразует указатель на функцию двоичного адаптируемых двоичных функции. |
|
Преобразует указатель функции унарный адаптируемых унарный функции. |
|
Класс-оболочку для ссылки. |
|
Структура, содержащая возвращаемый тип вызываемой перенесенного объекта. |
|
Класс шаблона, предоставляя функции-члена, которое инвертирует значение, возвращаемое функцией указанного унарного. |
Функции
Связывает аргументы вызываемый объект. |
|
Вспомогательная функция шаблона, создает адаптер для преобразования объекта двоичного функции в объект функции унарный путем привязки первый аргумент функции двоичных указанное значение. |
|
Вспомогательная функция шаблона, создает адаптер для преобразования объекта двоичного функции в объект функции унарный путем привязки второй аргумент функции двоичных указанное значение. |
|
Возвращает двоичное AND двух параметров. |
|
Возвращает двоичное или два параметра. |
|
Возвращает двоичное исключающее или двух параметров. |
|
Создает const reference_wrapper из аргумента. |
|
Создает оболочку простого вызова. |
|
Вспомогательные функции шаблона используется для создания адаптеров объект функции для функций-членов при инициализации аргументов указателя. |
|
Вспомогательная функция шаблон, используемый для создания адаптеров объект функции для функций-членов при инициализации ссылочные аргументы. |
|
Возвращает дополнение унарный предикат. |
|
Возвращает дополнение двоичных предиката. |
|
Вспомогательная функция шаблона используется для унарного оператора convert и двоичная функция указатели, соответственно, в унарный и бинарный адаптируемых функции. |
|
Создает reference_wrapper из аргумента. |
|
Меняет местами два function объектов. |
Структуры
Пустой базовый класс, определяющий типы, которые могут наследоваться производного класса, который предоставляет функции двоичный объект. |
|
Класс предоставляет стандартные функции объект, который выполняет арифметические операции деления на элементы заданного типа значения. |
|
Двоичный предикат, который проверяет, является ли значение указанного типа, равное значению другого типа. |
|
Двоичный предикат, который проверяет, является ли значение указанного типа больше, чем значение другого типа. |
|
Двоичный предикат, который проверяет, является ли значение указанного типа, больше или равно значению другого типа. |
|
Двоичный предикат, который проверяет, является ли значение указанного типа, меньше, чем значение другого типа. |
|
Двоичный предикат, который проверяет, является ли значение указанного типа, меньшим или равным значению другого типа. |
|
Класс предоставляет стандартные функции объект, который выполняет логическую операцию сочетании элементов заданного типа значения и тесты истину или falsity результат. |
|
Класс предоставляет стандартные функции объект, который выполняет логическую операцию отрицания элементов заданного типа значения и тесты истину или falsity результат. |
|
Класс предоставляет стандартные функции объект, который выполняет операции логического сложения элементов заданного типа значения и тесты истину или falsity результат. |
|
Класс предоставляет стандартные функции объект, который выполняет арифметическую операцию вычитания элементов заданного типа значения. |
|
Класс предоставляет стандартные функции объект, который выполняет арифметические операции модуля элементов заданного типа значения. |
|
Класс предоставляет стандартные функции объект, который выполняет арифметическую операцию умножения элементов заданного типа значения. |
|
Класс предоставляет стандартные функции объекта, который возвращает отрицательное значение элемента. |
|
Двоичный предикат, который проверяет, является ли значение указанного типа не равно значению другого типа. |
|
Класс предоставляет стандартные функции объект, который выполняет арифметическую операцию сложения элементов заданного типа значения. |
|
Пустой базовый класс, определяющий типы, которые могут наследоваться производного класса, который предоставляет унарные объект функции. |
Объекты
Местозаполнители подставляемые аргументы. |
Операторы
Запрещает сравнение на равенство вызываемой объектов. |
|
Запрещает сравнение неравенства вызываемой объектов. |
См. также
Ссылки
Потокобезопасность в стандартной библиотеке C++
Стандартная библиотека шаблонов