gpt4 book ai didi

function - boost::function 参数的默认值?

转载 作者:行者123 更新时间:2023-12-02 19:41:20 24 4
gpt4 key购买 nike

我有一个函数,我想采用可选的 boost::function 参数作为报告错误情况的回调。是否有一些特殊值我可以使用默认值使其可选?

例如,使用常规函数指针我可以这样做:

void my_func(int a, int b, t_func_ptr err_callback=NULL) {

if (error && (err_callback != NULL))
err_callback();

}

我可以用 boost::function 替换函数指针来做类似的事情吗?

最佳答案

您可以使用 0 (C++ 中的 NULL 等效项)作为 boost::function 参数的默认值,这将生成一个空函数对象。您可以通过调用其 empty() 方法、将其与 0 进行比较或仅在 bool 上下文中使用它来测试它是否为空:

void my_func(int a, int b, boost::function<void()> err_callback = 0) {
if (error && err_callback) // tests err_callback by converting to bool
err_callback();
}

boost::function 对象在这方面的工作方式与普通函数指针非常相似。

关于function - boost::function 参数的默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2337873/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com