¿Por qué el constructor de movimiento definido por el usuario deshabilita el constructor de copia implícito?
Mientras leo boost / shared_ptr.hpp, vi este código:
// generated copy constructor, destructor are fine...
#if defined( BOOST_HAS_RVALUE_REFS )
// ... except in C++0x, move disables the implicit copy
shared_ptr( shared_ptr const & r ): px( r.px ), pn( r.pn ) // never throws
{
}
#endif
¿Qué significa aquí el comentario "constructor de copia generado, destructor está bien, excepto en C ++ 11, mover deshabilita la copia implícita"? ¿Siempre escribimos la copia ctor nosotros mismos para prevenir esta situación en C ++ 11?