functional_logical_not
functional_logical_not (논리 NOT 함수 객체)
std::logical_not은 C++ 표준 라이브러리에서 제공하는 함수 객체로, 논리 NOT(부정) 연산을 수행해요. 이 페이지에서는 std::logical_not의 정의, 특수화, 멤버 타입, 그리고 operator()의 동작 방식을 설명해요. C++14부터는 타입을 명시하지 않고 std::logical_not<void>를 사용해 매개변수와 반환 타입을 자동으로 추론할 수 있어요.
출처: cppreference
본문
정의
<functional> 헤더에 정의됨 |
||
|---|---|---|
template < class T > struct logical_not ; |
(C++14까지) | |
template < class T = void > struct logical_not ; |
(C++14부터) |
std::logical_not은 논리 NOT(논리 부정)을 수행하는 함수 객체예요. 효과적으로 타입 T에 대해 operator!를 호출해요.
특수화
표준 라이브러리는 T가 지정되지 않은 경우 std::logical_not의 특수화를 제공해요. 이 특수화는 매개변수 타입과 반환 타입을 추론하도록 남겨 두어요.
| 특수화 | 설명 | 도입 |
|---|---|---|
logical_not<void> |
!x를 구현하며 매개변수와 반환 타입을 추론하는 함수 객체 (클래스 템플릿 특수화) |
C++14부터 |
멤버 타입
| 타입 | 정의 |
|---|---|
result_type (C++17에서 폐지, C++20에서 제거) |
bool |
argument_type (C++17에서 폐지, C++20에서 제거) |
T |
이 멤버 타입들은 std::unary_function<T, bool>을 공개 상속하여 얻어요. (C++11까지)
멤버 함수
| 멤버 함수 | 설명 |
|---|---|
operator() |
인자의 논리 NOT을 반환해요 (공개 멤버 함수) |
std::logical_not::operator()
bool operator ()( const T & arg ) const ; (C++14부터 constexpr)
인자 arg의 논리 NOT을 반환해요.
매개변수
| 매개변수 | 설명 |
|---|---|
arg |
논리 NOT을 계산할 값 |
반환값
!arg의 결과예요.
예외
구현에서 정의된 예외를 던질 수 있어요.
가능한 구현
constexpr // since C++14 bool operator ()( const T & arg ) const { return ! arg ; }