2 A non-template constructor for class X is a copy constructor if its first parameter is of type X&, const X&, volatile X& or const volatile X&, and either there are no other parameters or else all other parameters have default arguments
6 A declaration of a constructor for a class X is ill-formed if its first parameter is of type (optionally cv-qualified) X and either there are no other parameters or else all other parameters have default arguments
Isn't the whole point of copy constructor is get it's own class parameter?
The purpose of a copy constructor is to define the way you copy an object. So, requiring a copy to be made to call the copy constructor... not so good.