Avoid automatic copy constructor generation

B

Bo Persson

peter said:
Well - i certainly hope so ;-)


I agree - that would not be possible. But can I sidestep a little
and be off-topic for a second? I really like the idea of having a
copy- constructor being default being defined explicitly with the
new syntax, and now I wonder if there has been any proposal to
expand on the default stuff, notable for swap.
As the user-defined copy-constructor really is error-prone (I have
been bitten once or twice by forgetting the copying when adding a
new member to a class), I do my best to make sure that the default
constructor (and assignment-operator) works and normally restrict my
userdefined constructors to small classes with less than a handfull
of membervariables. But swap is another matter: I normally don't
write a swap function and live with the lost performance,
correcting the problem when e.g. I wind up with sorting large
arrays of those objects. But wouldn't it be nice if you could
write void swap(my_class& other) = default as well?
In other words: has there been any proposal to provide this
functionality in some later version of C++? I have skimmed the docs
but found nothing like that in C++0x. I do not know how general it
could be: having "= default" creating a function with standard
functionality for each member-variable (causing an error when that
functionality is not available) would be nice indeed.

No, I haven't seen anything like that either.

On the other hand, the standard swap function will attempt a
move-construction of your objects, instead of a copy-construction and
destruction of a temporary. That might improve things enough that you
need fewer specialized swaps.


Bo Persson
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,169
Messages
2,570,916
Members
47,458
Latest member
Chris#

Latest Threads

Top