On Thursday 21 August 2014 19:08:54 Peter Dimov wrote:
Andrey Semashev wrote:
My point was that noncopyable should not impose any constraints on the user's class beyond the ones needed. The fact that it did before C++11 is not an advantage but the necessary evil people had to put up with.
What is your justification for this claim?
That's common sense, IMO. The side effects of noncopyable may be non-critical in most cases but not all. C++11 removes these side effects making noncopyable closer to what it actually should be.
Sure, but following that logic noncopyable shouldn't have existed in the first place.
No, this does not follow (even though I agree that it shouldn't have existed :-). The fact that noncopyable only works for 99.4% of the uses does not
imply that it should not be provided.
...but we shouldn't make that 99.9%? I don't think I understand your point.
Stated differently, were the changes driven by any kind of user demand?
Well, there was this ticket:
Yes, I know. You'll note that it cites no reasons for the change and provides no examples of noncopyable's supposed inadequacy. It's just "C++11 is shiny, let's make use of it!"
There are benefits from C++11 in noncopyable, it's not a change for nothing.