functional_negate
functional_negate (부정 함수 객체)
std::negate는 단항 부정(unary negation)을 수행하는 함수 객체예요. 인자로 받은 값에 대해 operator-를 호출해서 부호를 뒤집어요. C++14부터는 T를 지정하지 않아도 std::negate<void> 특수화를 통해 타입을 자동으로 추론할 수 있어요.
출처: cppreference
본문
<functional> 헤더에 정의되어 있어요.
<functional> 헤더에 정의됨 |
||
|---|---|---|
template < class T > struct negate ; |
(C++14까지) | |
template < class T = void > struct negate ; |
(C++14부터) |
부정을 수행하는 함수 객체예요. 효과적으로 T 타입의 인스턴스에 대해 operator-를 호출해요.
특수화 (Specializations)
표준 라이브러리는 T가 지정되지 않았을 때 std::negate의 특수화를 제공해요. 이 특수화는 매개변수 타입과 반환 타입을 추론하도록 남겨둬요.
| 특수화 | 설명 | 도입 |
|---|---|---|
negate<void> (C++14) |
-x를 구현하며 매개변수와 반환 타입을 추론하는 함수 객체 (클래스 템플릿 특수화) |
C++14부터 |
멤버 타입 (Member types)
| 타입 | 정의 |
|---|---|
result_type (C++17에서 deprecated, C++20에서 제거) |
T |
argument_type (C++17에서 deprecated, C++20에서 제거) |
T |
C++11까지는 이러한 멤버 타입이 std::unary_function<T, T>를 공개 상속하여 얻어졌어요.
멤버 함수 (Member functions)
| 함수 | 설명 |
|---|---|
operator() |
인자의 부정 값을 반환해요 (공개 멤버 함수) |
std::negate::operator()
T operator ()( const T & arg ) const ;
constexpr는 C++14부터 적용돼요.
arg의 부정 값을 반환해요.
매개변수 (Parameters)
| 이름 | 설명 |
|---|---|
arg |
부정을 계산할 값 |
반환값 (Return value)
-arg의 결과예요.
예외 (Exceptions)
구현 정의 예외를 던질 수 있어요.
가능한 구현 (Possible implementation)
constexpr T operator ()( const T & arg ) const { return - arg ; }