Can an unnamed parameter of function have a default value?
c++, c++11, default-parameters, function, function-signature
Solution
Yes, it's legal.
There is no standard wording to allow this combination of features specifically; there simply isn't any to disallow it, either.
Default argument syntax applies to function parameters in a parameter-declaration:
`[C++11: 8.3.6/1]:` If an initializer-clause is specified in a parameter-declaration this initializer-clause is used as a default argument. Default arguments will be used in calls where trailing arguments are missing.
...and function parameters in a parameter-declaration may be unnamed:
`[C++11: 8.3.5/11]:` [..] An identifier can optionally be provided as a parameter name. [..]
There is even an example of this usage under 8.3.6/4 (though examples are not normative text, so this cannot be used to prove anything concretely).
Problem
Is the following code legal in C++? ``` void f(void* = 0) {} int main() { f(); } ``` Which page of the C++ standard states that this usage is legal?