[cfe-dev] Move constructor forces copy assignment to be implicitly defaulted?

Suman Kar skarpio at gmail.com
Sat May 26 03:07:32 PDT 2012


Howard,

Thanks a ton for taking the time to explain this. I need to update my
references asap!

> On Fri, May 25, 2012 at 7:45 PM, Howard Hinnant  <hhinnant at apple.com> wrote:
> In summary, if you declare either copy member or the destructor,
> implicit move members are inhibited.

I am assuming that by inhibited you mean something other than deleted.

> If you declare either move
> member, the copy members are implicitly deleted unless you
> declare them otherwise.
>

This makes sense. It looks like this is as a direct result of core
issue #667 and is tracked by most compiler vendors as N3053: Defining
move special member functions. However, I wasn't able to trace a
particular document that could provide me with a rationale on this
shunning of the copy assignment operator. This is perhaps asking for
too much and not relevant to this group, but if you could point me in
the right direction I'd be much obliged.

<off-topic>
Should I consider this a bug in gcc 4.6? (Status of N3053 is marked as
complete in http://gcc.gnu.org/gcc-4.6/cxx0x_status.html. Also, I
wasn't able to find a relevant bug file against gcc 4.6 on bugzilla.)
</off-topic>

Regards,
Suman



More information about the cfe-dev mailing list