Boost logo

Boost Users :

Subject: Re: [Boost-users] Boost.Parameter: copy constructor gets "mistaken" for constructor(const ArgPack& ) in parent class.
From: Steven Watanabe (watanabesj_at_[hidden])
Date: 2009-01-12 22:40:12


AMDG

er wrote:
> 3 copy constructors are shown below, on the last of which works.
> However it's really the first one that I'd like to get to work.
>
> struct B : public A{
> template<typename ArgPack>
> B(const ArgPack& arg):A(arg){}
>
> B& operator=(const B& that){
> if(&that!=this){ A::operator=(that); return *this; } }
>
>
> //B(const B& that):A(that){} //no match for 'operator[]' in
> 'arg[(+<unnamed>::xx)->boost::parameter::keyword<T>::operator| [with
> Default = int, Tag = tag::xx](((const int&)((const int*)(&0))))]'|
>
> //B(const B& that):A(static_cast<A>(that)){} //fails too

This is almost right. Cast to const A& instead of A.

In Christ,
Steven Watanabe


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