Namespaces
Variants

operator==,!=(std::function)

ko.cppreference.net 참조
 
 
유틸리티 라이브러리
일반 유틸리티
관계 연산자 (C++20에서 폐기됨)
정수 비교 함수
(C++20)(C++20)(C++20)    
(C++20)
교환 및 형식 연산
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
공통 어휘 형식
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)



 
함수 객체
함수 호출
(C++17)(C++23)
항등 함수 객체
(C++20)
투명 연산자 래퍼
(C++14)
(C++14)
(C++14)
(C++14)  
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)

이전 바인더 및 어댑터
(C++17까지*)
(C++17까지*)
(C++17까지*)
(C++17까지*)  
(C++17까지*)
(C++17까지*)(C++17까지*)(C++17까지*)(C++17까지*)
(C++20까지*)
(C++20까지*)
(C++17까지*)(C++17까지*)
(C++17까지*)(C++17까지*)

(C++17까지*)
(C++17까지*)(C++17까지*)(C++17까지*)(C++17까지*)
(C++20까지*)
(C++20까지*)
 
 
헤더 <functional>
template< class R, class... ArgTypes >
bool operator==( const std::function<R(ArgTypes...)>& f,
                 std::nullptr_t ) noexcept;
에 정의됨 (1) (C++11부터)
template< class R, class... ArgTypes >
bool operator==( std::nullptr_t,
                 const std::function<R(ArgTypes...)>& f ) noexcept;
(2) (C++11부터)
(C++20까지)
template< class R, class... ArgTypes >
bool operator!=( const std::function<R(ArgTypes...)>& f,
                 std::nullptr_t ) noexcept;
(3) (C++11부터)
(C++20까지)
template< class R, class... ArgTypes >
bool operator!=( std::nullptr_t,
                 const std::function<R(ArgTypes...)>& f ) noexcept;
(4) (C++11부터)
(C++20까지)

std::function를 널 포인터와 비교합니다. 빈 함수(즉, 호출 가능한 대상을 가지고 있지 않은 함수)는 동등하게 비교되고, 비어 있지 않은 함수는 동등하지 않게 비교됩니다.

!= 연산자는 에서 합성됩니다. operator==.

(C++20부터)

매개변수

f - std::function 비교 대상

반환값

1,2) ! f
3,4) ( bool ) f

예제

#include <functional>
#include <iostream>
using SomeVoidFunc = std::function<void(int)>;
class C
{
public:
    C(SomeVoidFunc void_func = nullptr) : void_func_(void_func)
    {
        if (void_func_ == nullptr) // nullptr과의 특수화된 비교
            void_func_ = std::bind(&C::default_func, this, std::placeholders::_1);
        void_func_(7);
    }
    void default_func(int i) { std::cout << i << '\n'; };
private:
    SomeVoidFunc void_func_;
};
void user_func(int i)
{
    std::cout << (i + 1) << '\n';
}
int main()
{
    C c1;
    C c2(user_func);
}

출력:

7
8

참고 항목

(C++23)
std::move_only_function 을 nullptr 와 비교합니다
(함수)