unary 'operator operator' has too many formal parameters
The unary operator has a nonvoid parameter list.
Example
class X { public: X operator! ( X ); // error, nonvoid parameter list X operator! ( void ); // OK };