Compiler Error C2808

unary 'operator symbol' has too many formal parameters

The specified overloaded unary operator was incorrectly declared with a nonvoid parameter list.

The following is an example of this error:

class X
{
public:
   X operator! ( X );     // error, nonvoid parameter list
   X operator! ( void );  // OK
};