'identifier' : illegal copy constructor: first parameter must not be an 'identifier'
The first parameter in the specified copy constructor was the same type as the class, structure, or union for which it was defined.
A copy constructor for a type can take a reference to the type as the first parameter but not the type itself.
The following is an example of this error:
class A
{
A( A ); // error, takes an A
};
class B
{
B( B& ); // OK, reference to B
};