|
Boost Users : |
From: Okko Willeboordse (trash_at_[hidden])
Date: 2005-08-29 15:08:01
I have a class that has a constructor that takes a Boost function object wrapper;
class some_class
{
public:
some_class(const boost::function1<wchar_t*, short*>& some_member)
....
I call the constructor with a member function using Boost bind.
some_class some_object(boost::bind(&some_other_class::some_member,
&some_other_object,
_1));
Now I want to use some_class for some_member functions that return an other type
pointer.
So I do
class some_class
{
public:
template <class T>
some_class(const boost::function1<T*, short*>& get_member)
....
But now the compiler (VS 2003) starts complaining;
error C2664: 'some_class::some_class(const some_class &)' : cannot convert
parameter 1 from 'boost::_bi::bind_t<R,F,L>' to 'const some_class &'
with
[
R=wchar_t *,
F=boost::_mfi::mf1<wchar_t *,some_other_class,short *>,
L=boost::_bi::list2<boost::_bi::list_av_2<some_other_class *__w64
,boost::arg<1>>::B1,boost::_bi::list_av_2<some_other_class *__w64
,boost::arg<1>>::B2>
]
Reason: cannot convert from 'boost::_bi::bind_t<R,F,L>' to 'const
some_class'
with
[
R=wchar_t *,
F=boost::_mfi::mf1<wchar_t *,some_other_class,short *>,
L=boost::_bi::list2<boost::_bi::list_av_2<some_other_class *__w64
,boost::arg<1>>::B1,boost::_bi::list_av_2<some_other_class *__w64
,boost::arg<1>>::B2>
]
No constructor could take the source type, or constructor overload
resolution was ambiguous
Any ideas?
Many thanks,
Okko Willeboordse
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