Ruf*_*fus 1 c++ functional-programming function-pointers
鉴于我的函数将函数指针作为参数
void call_func(std::function<void()>func) {
func();
}
Run Code Online (Sandbox Code Playgroud)
最直接的方式是类似的
void no_op() {
;
}
void call_func(std::function<void()>func = no_op) {
func();
}
Run Code Online (Sandbox Code Playgroud)
有没有更简洁的方法来做到这一点,以便我可以避免创建字面上无用的no_op
功能?
你可以使用一个空的lambda,它也可以被包裹std::function
.例如
void call_func(std::function<void()>func = []{}) {
func();
}
Run Code Online (Sandbox Code Playgroud)