functional_not1
functional_not1 (단항 술어 부정 헬퍼 함수)
std::not1은 단항 술어 함수의 부정을 반환하는 함수 객체를 생성하는 헬퍼 함수예요. 이 함수로 만들어진 함수 객체는 std::unary_negate<Predicate> 타입이에요. C++17에서 deprecated 되고 C++20에서 제거되었어요.
출처: cppreference
본문
헤더 <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에서 deprecated) (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 호출에서 얻은 단항 함수 객체는 이 타입을 정의하고 있어요. 또한 deprecated된 std::unary_function에서 파생된 함수 객체도 마찬가지예요.
매개변수
| pred | - | 단항 술어 |
|---|
반환값
std::not1은 pred로 생성된 std::unary_negate<Predicate> 타입의 객체를 반환해요.
예제
#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
같이 보기
| not_fn (C++17) | 보유한 함수 객체의 결과의 보수를 반환하는 함수 객체를 생성해요 (함수 템플릿) |
|---|---|
| unary_negate (C++17에서 deprecated, C++20에서 제거) | 보유한 단항 술어의 보수를 반환하는 래퍼 함수 객체 (클래스 템플릿) |
| function (C++11) | 복사 생성 가능한 호출 객체를 복사할 수 있는 래퍼 (클래스 템플릿) |
| move_only_function (C++23) | 주어진 호출 시그니처에서 한정자를 지원하는 모든 호출 객체의 이동 전용 래퍼 (클래스 템플릿) |
| not2 (C++17에서 deprecated, C++20에서 제거) | 사용자 정의 std::binary_negate 객체를 생성해요 (함수 템플릿) |
| ptr_fun (C++11에서 deprecated, C++17에서 제거) | 함수 포인터에서 어댑터 호환 함수 객체 래퍼를 생성해요 (함수 템플릿) |
| unary_function (C++11에서 deprecated, C++17에서 제거) | 어댑터 호환 단항 함수 기본 클래스 (클래스 템플릿) |