On 25 July 2011 18:04, Nathan Ridge
mailto:zeratul976@hotmail.com> wrote: struct S : boost::noncopyable { S(S&&) = default; };
The problem is that the default move constructor for S tries to move the noncopyable base subobject, but noncopyable does not have a move constructor (one isn't generated implicitly because a user-defined copy constructor is present). Then it tries to fall back to the noncopyable copy constructor, but that of course is private.
Doesn't the problem go away if you don't use boost::noncopyable at all? If one agrees that the C++0x mechanism is superior, is there still a use case under C++0x for boost::noncopyable?
Less typing and more self-documenting than doing it yourself? Isn't that what boost::noncopyable was for in C++03, too? Regards, Nate.