The following rules apply to unary operator declarations, where T
denotes the class or struct type that contains the operator declaration:
+
, -
, !
, or ~
operator must take a single parameter of type T
and can return any type.++
or --
operator must take a single parameter of type T
and must return type T
.true
or false
operator must take a single parameter of type T
and must return type bool
.The signature of a unary operator consists of the operator token (+
, -
, !
, ~
, ++
, --
, true
, or false
) and the type of the single formal parameter. The return type is not part of a unary operator’s signature, nor is the name of the formal parameter.
The true
and false
unary operators require pair-wise declaration. An error occurs if a class declares one of these operators without also declaring the other. The true
and false
operators are further described in §7.16.