use*_*926 34 c++ function-pointers default-parameters function-signature
C++如何处理与具有默认参数的函数相关的函数指针?
如果我有:
void foo(int i, float f = 0.0f);
void bar(int i, float f);
void (*func_ptr1)(int);
void (*func_ptr2)(int, float);
void (*func_ptr3)(int, float = 10.0f);
Run Code Online (Sandbox Code Playgroud)
哪个函数指针可以用于哪个函数?
Geo*_*che 32
双方foo()
并bar()
只能分配给func_ptr2
.
§8.3.6/ 2:
默认参数不是函数类型的一部分.[例:
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
Run Code Online (Sandbox Code Playgroud)
- 末端示例]