A parameter list consisting of a single unnamed non-object parameter of
non-dependent type
void is equivalent to an empty parameter
list
. Except for this special case, a parameter shall not have type
cv void. If the
parameter-declaration-clause
terminates with an ellipsis or a function parameter
pack (
[temp.variadic]), the number of arguments shall be equal
to or greater than the number of parameters that do not have a default
argument and are not function parameter packs
. Where syntactically correct and where “
...” is not
part of an
abstract-declarator,
“
...”
is synonymous with
“
, ...”
. [
Example 1:
The declaration
int printf(const char*, ...);
declares a function that can be called with varying numbers and types of arguments
.printf("hello world");
printf("a=%d b=%d", a, b);
However, the first argument must be of a type
that can be converted to a
const
char*. —
end example]