<functional> 运算符

operator==

测试可调用对象是否为空。

template <class Fty>
    bool operator==(const function<Fty>& f, null_ptr_type npc);

template <class Fty>
    bool operator==(null_ptr_type npc, const function<Fty>& f);

参数

Fty
要包装的函数类型。

f
function 对象

npc
Null 指针。

备注

这两个运算符均采用了是对 function 对象的引用的参数和是 null 指针常量的参数。 仅当 function 对象为空时才都返回 true。

示例

// std__functional__operator_eq.cpp
// compile with: /EHsc
#include <functional>
#include <iostream>

int neg(int val)
{
    return (-val);
}

int main()
{
    std::function<int(int)> fn0;
    std::cout << std::boolalpha << "empty == "
        << (fn0 == 0) << std::endl;

    std::function<int(int)> fn1(neg);
    std::cout << std::boolalpha << "empty == "
        << (fn1 == 0) << std::endl;

    return (0);
}
empty == true
empty == false

operator!=

测试可调用对象是否不为空。

template <class Fty>
    bool operator!=(const function<Fty>& f, null_ptr_type npc);

template <class Fty>
    bool operator!=(null_ptr_type npc, const function<Fty>& f);

参数

Fty
要包装的函数类型。

f
function 对象

npc
Null 指针。

备注

这两个运算符均采用了是对 function 对象的引用的参数和是 null 指针常量的参数。 仅在 function 对象不为空时才都返回 true。

示例

// std__functional__operator_ne.cpp
// compile with: /EHsc
#include <functional>
#include <iostream>

int neg(int val)
    {
    return (-val);
    }

int main()
    {
    std::function<int (int)> fn0;
    std::cout << std::boolalpha << "not empty == "
        << (fn0 != 0) << std::endl;

    std::function<int (int)> fn1(neg);
    std::cout << std::boolalpha << "not empty == "
        << (fn1 != 0) << std::endl;

    return (0);
    }
not empty == false
not empty == true