Yep, that what I tried, but it does not work. The compiler error is described below.
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)
]
_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users