#ifndef __FUNCTIONBIND__H
#define __FUNCTIONBIND__H
#include <iostream>
#include <functional>
class CBindFunction
{
public:
CBindFunction() = default;
~CBindFunction() = default;
public:
void Print()
{
std::cout << "Print" << std::endl;
}
void PrintPtr(void* arg, int nLen)
{
std::cout << "PrintPtr" << std::endl;
}
};
typedef std::function<void(void*)> func;
int main()
{
CBindFunction obj;
func call = std::bind(&CBindFunction::Print, &obj);
call(NULL);
call = std::bind(&CBindFunction::PrintPtr, &obj, nullptr, 0);
call(NULL);
}
#endif