std::function と std::bind について
#include <iostream>
#include <functional>
class Object
{
public:
void print(int x) const { std::cout << x << std::endl; }
};
void print_gloval(int x) { std::cout << x << std::endl; }
int _tmain(int argc, _TCHAR* argv[])
{
auto print_lambda = [](int x){ std::cout << x << std::endl; };
std::function<void(int)> func_0 = print_gloval;
func_0(0);
std::function<void(int)> func_1 = print_lambda;
func_1(1);
std::function<void(const Object&, int)> func_2 = &Object::print;
Object obj;
func_2(obj, 2);
std::function<void()> func_3 = std::bind(print_gloval, 3);
func_3();
std::function<void()> func_4 = std::bind(&Object::print, &obj, 4);
func_4();
std::function<void()> func_5 = std::bind(print_lambda, 5);
return 0;
}