
struct my_reader { my_reader(bool full) { if( full ) { _read_function = &my_reader::read_full<int>; } else { _read_function = &my_reader::read_partial<int>; } }
void read() { _read_function(this); }
private:
template< typename T > void read_full() { std::cout << "reading full image" << std::endl; }
template< typename T > void read_partial() { std::cout << "reading partial image" << std::endl; }
boost::function
_read_function; }; int main(int argc, char* argv[]) { my_reader r(false); r.read();
return 0; }
This doesn't compile with Visual Studio 2010 since the compiler cannot:
"cannot convert from 'overloaded-function' to 'boost::function<Signature>'"
Is there is way to make this happen?
http://www.boost.org/doc/libs/1_48_0/libs/bind/bind.html#with_member_pointer...