where the
postfix-expression
evaluates to a class object and the possibly empty
expression-list
matches the parameter list of an
operator()
member function of the class.
Thus, a call
x(arg1,...)
is interpreted as
x.operator()(arg1, ...)
for a class object
x
of type
T
if
T::operator()(T1,T2,T3)
exists and if the operator is selected as the best match function by
the overload resolution mechanism ([over.match.best]).