#include <iostream>
#include <functional>
//1、普通函数
void func()
{
std::cout << __func__ << std::endl;
}
//2、类中的静态函数
class Test
{
public:
static int test_func(int a)
{
std::cout << __func__ << "(" << a << ") -> ";
return a;
}
};
//3、类中的仿函数
class MyFunctor
{
public:
int operator () (int a)
{
std::cout << __func__ << "(" << a << ") ->";
return a;
}
};
int main()
{
//1、绑定普通函数
std::function<void()> f1 = func;
f1();
//2、绑定类中的静态函数
std::function<int(int)> f2 = Test::test_func;
std::cout << f2(10) << std::endl;
//3、绑定类中的仿函数,绑定对象,仿函数调用obj()
MyFunctor obj;
std::function<int(int)> f3 = obj;
std::cout << f3(20) << std::endl;
system("pause");
return 0;
}