use boost::bind instead of std::bind