Sorry,

it was my mistake. I seemed to read you used unsigned int to specialize the TTImage type. But you used the unsigend char. Therefore, the code should be:

f=&Profile::template ComputeRadiometries<unsigned char>;


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

ComputeRadiometries is a template member function :
template <class T> bool ComputeRadiometries( boost::shared_ptr< TTImage <T> > image , const eInterpolatorType type_interpolator=BICUBIC )

This compiles fine :
boost::function<bool (Profile*, boost::shared_ptr< TTImage <unsigned char> >, eInterpolatorType)> f;

But, this does not :
f = &Profile::ComputeRadiometries;

This is incorrect. How should the compiler know which function address do you mean?
The correct way would be:
f=&Profile::template ComputeRadiometries<unsigned int>;

This does not seem to work. The compiler error is :
error C2440: '=' : impossible de convertir de 'overloaded-function' en 'boost::function<Signature>'
        with
        [
            Signature=bool (Profile *,boost::shared_ptr<TTImage<UInt1>>,eInterpolatorType)
        ]