16 Overloading [over]

16.5 Overloaded operators [over.oper]

16.5.4 Function call [over.call]

operator() должна быть нестатической функцией-членом с произвольным числом параметров. У него могут быть аргументы по умолчанию. Он реализует синтаксис вызова функции

postfix-expression ( expression-listopt )

где postfix-expression оценивается как объект класса, а возможно пустое значение expression-list соответствует списку параметров operator() функции-члена класса. Таким образом, вызов x(arg1,...) интерпретируется как x.operator()(arg1, ...) объект класса x типа, T если он T​::​operator()(T1, T2, T3) существует, и если оператор выбран как функция наилучшего соответствия механизмом разрешения перегрузки ([over.match.best]).