std::not1
Определено в заголовке <functional> |
||
|---|---|---|
template< class Predicate > std::unary_negate<Predicate> not1( const Predicate& pred ); |
(до C++14) | |
template< class Predicate > constexpr std::unary_negate<Predicate> not1( const Predicate& pred ); |
(с C++14) (устарело в C++17) (удалено в C++20) |
Функция std::not1 — вспомогательная функция для создания объекта функции, возвращающего дополнение унарной предикатной функции, переданной в качестве аргумента. Созданный объект функции имеет тип std::unary_negate<Predicate>.
Тип унарного предиката должен определять член-тип argument_type, преобразуемый в тип параметра предиката. Объекты унарных функций, полученные из std::ref, std::cref, std::negate, std::logical_not, std::mem_fn, std::function, std::hash, или из другого вызова std::not1, а также объекты функций, производные от устаревшего std::unary_function, имеют этот тип.
Параметры
| pred | - | унарный предикат |
Возвращаемое значение
Функция std::not1 возвращает объект типа std::unary_negate<Predicate>, созданный с помощью pred.
Исключение
(нет)
Пример
#include <algorithm>
#include <functional>
#include <iostream>
#include <iterator>
#include <numeric>
#include <vector>
struct LessThan7 : std::unary_function<int, bool>
{
bool operator()(int i) const { return i < 7; }
};
int main()
{
std::vector<int> v(10);
std::iota(std::begin(v), std::end(v), 0);
std::cout << std::count_if(begin(v), end(v), std::not1(LessThan7())) << '\n';
// the same as above using std::function
std::function<bool(int)> less_than_9 = [](int x) { return x < 9; };
std::cout << std::count_if(begin(v), end(v), std::not1(less_than_9)) << '\n';
}Вывод:
3 1
См. также
|
(C++17) |
создаёт объект функции, возвращающий дополнение результата вызова объекта функции, который он содержит (шаблон функции) |
|
(устарело в C++17)(удалено в C++20) |
объект-обёртка функции, возвращающий дополнение унарного предиката, который он содержит (шаблон класса) |
|
(C++11) |
оборачивает вызываемый объект любого копируемого типа с заданной сигнатурой вызова функции (шаблон класса) |
|
(C++23) |
оборачивает вызываемый объект любого типа с заданной сигнатурой вызова функции (шаблон класса) |
|
(устарело в C++17)(удалено в C++20) |
строит объект типа std::binary_negate (шаблон функции) |
|
(устарело в C++11)(удалено в C++17) |
создает адаптер-совместимый объект-обёртку функции из указателя на функцию (шаблон функции) |
|
(устарело в C++11)(удалено в C++17) |
адаптер-совместимый базовый класс унарной функции (шаблон класса) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/utility/functional/not1