Re: non-const copy ctor

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Christian,

> Hmm, I would say *usually* it is a const reference.-- But eventually it is
> not, like in my case or in the case of std::auto_ptr.

In C++, a copy constructor is a const reference.

> Of course you could say this isn't a copy constructor because it doesn't take
a const reference.

It's not a copy constructor.

> But I think it is anyway because it still has the semantic of a copy
operation.

Regardless, it's not a copy constructor.

> Anyway, I need to have a constructor taking a non-const reference which g++
> doesn't allow.

You can implement similar facilities like auto_ptr for your class to have
the behavior you are inquiring about.

> And I still don't know why g++ is acting this way here and how  to work around
it.

On this particular issue, g++ is complying with ISO 14882.  VC7 is not.

More information in The Design and Evolution of C++:
http://www.amazon.com/gp/product/0201543303/

I don't recall if the particular point you raised is covered.

I believe it (copy constructor being a const reference) has to do with
catastrophic slicing if it were not a const, and infinite recursion if it
were not a reference.

Sincerely,
--Eljay


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux