Boost logo

Boost Users :

From: Ovanes Markarian (om_boost_at_[hidden])
Date: 2007-11-13 05:12:03


On 11/13/07, Olivier Tournaire <olitour_at_[hidden]> wrote:
>
> Hi all,
>
> I would like to use thread with a member function which takes parameters.
> Here is the code I actually use :
>
> shared_ptr<Profile> p2 ( new
> Profile(origine+(double)i*width_sur_nb_fois_wdir,rect->GetHeightDirection(),MPPParameters_.ProfilesNbPoints_,MPPParameters_.ProfilesDistancePoints_
> ) );
> shared_ptr<Profile> p3 ( new
> Profile(origine+(double)(-i)*width_sur_nb_fois_wdir,rect->GetHeightDirection(),MPPParameters_.ProfilesNbPoints_,MPPParameters_.ProfilesDistancePoints_
> ) );
> p2->ComputeRadiometries(image_,BILINEAR);
> p3->ComputeRadiometries(image_,BILINEAR);
>
> 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>;

I would like to use boost::bind in order to call ComputeRadiometries with a
> thread.
>
> Can you help ?
>
> Regards
>
> --
> Le temps des cerises reviendra. Dans l'immédiat, c'est le temps des
> noyaux. Courage.
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net