以下摘自 C++ Primer The meaning of an operator for the built-in
types may not be changed. Nor may additional operators be defined
for the built-in data types.
An overloaded operator must have at least one operand of class or
enumeration type. This rule enforces the requirement that an
overloaded operator may not redefine the meaning of the operators when
applied to objects of built-in type.