boost::function 参数的默认值?
我有一个函数,我想采用可选的 boost::function 参数作为报告错误情况的回调。是否有一些特殊值我可以使用默认值使其可选?
例如,使用常规函数指针,我可以执行以下操作:
void my_func(int a, int b, t_func_ptr err_callback=NULL) {
if (error && (err_callback != NULL))
err_callback();
}
我可以使用 boost::function 替换函数指针来执行类似的操作吗?
I've got a function that I want to take an optional boost::function argument as a callback for reporting an error condition. Is there some special value I can use a the default value to make it optional?
For example, with a regular function pointer I can do:
void my_func(int a, int b, t_func_ptr err_callback=NULL) {
if (error && (err_callback != NULL))
err_callback();
}
Can I do something similar with boost::function replacing the function pointer?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用
0
(C++ 中的NULL
等效项)作为 boost::function 参数的默认值,这将生成一个空函数对象。您可以通过调用其empty()
方法、将其与 0 进行比较或简单地在布尔上下文中使用它来测试它是否为空:boost::function
对象几乎可以工作在这方面就像普通的函数指针一样。You can use
0
(C++'s equivalent ofNULL
) for the default value of a boost::function argument, which will result to an empty function object. You can test if it's empty by calling itsempty()
method, comparing it to 0, or simply using it in a boolean context:boost::function
objects work pretty much like plain function pointers in this respect.一个好的特殊值可以是默认构造的
boost::function
。空的
function
在布尔上下文(如 NULL 指针)中计算 false,或者您可以使用empty()
方法来测试函数对象包装器是否实际上包含函数。请参阅 boost::function 教程 。这是一个代码示例:
A good special value could be a default-constructed
boost::function
.An empty
function
evaluates false in a boolean context (like a NULL pointer), or you can use theempty()
method to test if a function object wrapper actually contains a function. See the boost::function Tutorial.Here is a code sample: