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 ; }

더 알아보기 (Learn more)

cppreference