默认情况下,如何使函数指针参数无操作?
How can I make a function pointer parameter no-op by default?
鉴于我的函数采用函数指针作为参数
void call_func(std::function<void()>func) {
func();
}
最直接的方法是
void no_op() {
;
}
void call_func(std::function<void()>func = no_op) {
func();
}
是否有更简洁的方法来避免创建无用的 no_op
函数?
您可以使用空 lambda, which could be also wrapped by std::function
。例如
void call_func(std::function<void()>func = []{}) {
func();
}
鉴于我的函数采用函数指针作为参数
void call_func(std::function<void()>func) {
func();
}
最直接的方法是
void no_op() {
;
}
void call_func(std::function<void()>func = no_op) {
func();
}
是否有更简洁的方法来避免创建无用的 no_op
函数?
您可以使用空 lambda, which could be also wrapped by std::function
。例如
void call_func(std::function<void()>func = []{}) {
func();
}