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>;
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)
]