On 25 July 2011 18:04, Nathan Ridge <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?
--
 Nevin ":-)" Liber  <mailto:nevin@eviloverlord.com>  (847) 691-1404