|
Boost Users : |
Subject: [Boost-users] [function] How to use function with templated member functions
From: Christian Henning (chhenning_at_[hidden])
Date: 2011-12-05 23:38:15
Hi there, I would like to boost::function with a templated member
function. Please consider the following code:
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<void (my_reader*)> _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?
Regards,
Christian
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net