How does C++ handle function pointers in relation to functions with defaulted parameters?
If I have:
void foo(int i, float f = 0.0f);
void bar(int i
Both foo()
and bar()
can only be assigned to func_ptr2
.
§8.3.6/2:
A default argument is not part of the type of a function. [Example:
int f(int = 0);
void h() {
int j = f(1);
int k = f(); // OK, means f(0)
}
int (*p1)(int) = &f;
int (*p2)() = &f; // error: type mismatch
--end example]
Default argument cannot be provided for pointers to functions.