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

On 11/13/07, Olivier Tournaire < olitour@gmail.com> wrote:


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 ?

Regards

Regards,
Ovanes