Why do you need a function instance at all?
Just use boost::bind and that's it...
Profile p;
boost::shared_ptr< TTImage<unsigned char> > image(new TTImage<unsigned char>);
boost::thread t(
boost::bind
(
&Profile::template ComputeRadiometries<unsigned char>
, p
, image
, BICUBIC
)
);
This code compiles fine for me.
Regards,
Ovanes
2007/11/13, Ovanes Markarian <om_boost@keywallet.com>:
On 11/13/07, Olivier Tournaire < olitour@gmail.com> wrote:Yep, that what I tried, but it does not work. The compiler error is described below.
This is really strange. This code compiles fine:
typedef bool (Profile::*mem_fcn)(boost::shared_ptr< TTImage <unsigned char> >, eInterpolatorType);
mem_fcn f = &Profile::template ComputeRadiometries<unsigned char>;
and the doc example states for member functions:
boost::function<int (X*, int)> f;
f = &X::foo;
X x;
f(&x, 5);
But I also got errors.
Yes. The first code I posted came from the doc. The one you just gave me compiles fine.
However, how can I use it to create a thread and pass parameters ?
RegardsRegards,
Ovanes