默认情况下,如何使函数指针参数为no-op?

时间:2018-12-20 03:14:52

标签: c++ functional-programming function-pointers

给出我的以函数指针作为参数的函数

void call_func(std::function<void()>func) {
    func();
}

最直接的方法是类似

void no_op() {
    ;
}

void call_func(std::function<void()>func = no_op) {
    func();
}

是否有一种更干净的方法可以避免创建无用的no_op函数?

1 个答案:

答案 0 :(得分:5)

您可以使用空的lambda,也可以用std::function来包装。例如

void call_func(std::function<void()>func = []{}) {
    func();
}