Compiler Error C2652

'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
};