#include #include #include #include class Device { public: // cllback type typedef std::function cb_t; Device(cb_t cb) : cb(cb)//Device(cp_t cb) : cb(cb) { }; void do_something(void) { unsigned int return_value; return_value = cb(1); std::cout << return_value << std::endl; }; private: cb_t cb; }; class Interface { public: Interface() { std::cout << "created interface object" << std::endl; }; unsigned int read_write(unsigned int input) { std:: cout << "calling read_write"<< std::endl; std::cout << input << std::endl; return 5; }; private: }; int main(void) { //using namespace std::placeholders; // for _1, _2, ... std::cout << "callback_example" << std::endl; Interface iface; //unsigned int ret = iface.read_write(1); //std::cout << ret << std::endl; //auto cb = std::bind(&Interface::read_write, &iface,_1); auto cb = std::bind(&Interface::read_write, &iface, std::placeholders::_1); Device device(cb); device.do_something(); return 0; }