Префиксный унарный оператор должен быть реализован нестатической функцией-членом ([class.mfct]) без параметров или функцией, не являющейся членом, с одним параметром. Таким образом, для любого одноместной операции префикса @, @x может быть интерпретирована как либо x.operator@() или operator@(x). Если были объявлены обе формы операторной функции, правила [over.match.oper] определяют, какая интерпретация используется, если таковая имеется. См. [over.inc] Объяснение постфиксных унарных операторов ++ и --.