R
Справочное
руководство по С++
R.13.4.2 Бинарные операции.
Бинарную операцию можно задать с помощью нестатической
функции-члена ($$R.9.3), имеющей один параметр, или с помощью
функции, не являющейся членом, с двумя параметрами. Таким образом,
для всякой бинарной операции @ выражение x@y может интерпретироваться
как x.operator@(y) или как operator@(x,y). Если описаны
функции-операторы обоих видов, то какая из них будет использоваться
при вызове, определяется правилами сопоставления параметров ($$R.13.2).