std:: unary_function
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Old binders and adaptors | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Определено в заголовочном файле
<functional>
|
||
|
template
<
typename
ArgumentType,
typename
ResultType
>
struct unary_function ; |
(устарело в C++11)
(удалено в C++17) |
|
std::unary_function
является базовым классом для создания функциональных объектов с одним аргументом.
std::unary_function
не определяет
operator
(
)
; предполагается, что производные классы определят его.
std::unary_function
предоставляет только два типа -
argument_type
и
result_type
- определённые параметрами шаблона.
Некоторые адаптеры функциональных объектов стандартной библиотеки, такие как
std::not1
, требуют, чтобы адаптируемые функциональные объекты имели определенные типы;
std::not1
требует, чтобы адаптируемый функциональный объект имел тип с именем
argument_type
. Наследование функциональных объектов, принимающих один аргумент, от
std::unary_function
является простым способом сделать их совместимыми с этими адаптерами.
std::unary_function
устарел в C++11.
Типы членов
| Тип | Определение |
argument_type
|
ArgumentType
|
result_type
|
ResultType
|
Пример
#include <algorithm> #include <functional> #include <iostream> #include <vector> struct less_than_7 : std::unary_function<int, bool> { bool operator()(int i) const { return i < 7; } }; int main() { std::vector<int> v(10, 7); v[0] = v[1] = v[2] = 6; std::cout << std::count_if(v.begin(), v.end(), std::not1(less_than_7())); // C++11 solution: // Cast to std::function<bool (int)> somehow - even with a lambda // std::cout << std::count_if(v.begin(), v.end(), // std::not1(std::function<bool (int)>([](int i) { return i < 7; }))); }
Вывод:
7
Смотрите также
|
(C++11)
|
копируемая обёртка любого копируемого вызываемого объекта
(шаблон класса) |
|
(C++23)
|
перемещаемая обёртка любого вызываемого объекта, поддерживающего квалификаторы в заданной сигнатуре вызова
(шаблон класса) |
|
(deprecated in C++11)
(removed in C++17)
|
создаёт совместимую с адаптерами обёртку функционального объекта из указателя на функцию
(шаблон функции) |
|
(deprecated in C++11)
(removed in C++17)
|
совместимая с адаптерами обёртка для указателя на унарную функцию
(шаблон класса) |
|
(deprecated in C++11)
(removed in C++17)
|
базовый класс бинарной функции, совместимый с адаптерами
(шаблон класса) |