A lot of the examples for using
Parent(Child&& child) :
Because of the nature of a
std::unique_ptr(sole ownership of an object) it's required to have no copy constructor whatsoever. The move constructor(6) only takes non-const rvalue-references which means that if you'd try to make your
const and move it you'd get a nice compilation error :)
Even if a custom
unique_ptr would take a const rvalue-reference it would be impossible to implement.