operator()
shall be a non-static member function with an arbitrary number of
parameters
. It can have default arguments
. It implements the function call syntax
postfix-expression ( expression-listopt )
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])
.