A binary operator shall be implemented either by a non-static member
with one parameter or by a non-member function with two parameters.
Thus, for any binary operator
can be interpreted as either
If both forms of the operator function have been declared,
the rules in [over.match.oper]
determine which, if any, interpretation is