使用 boost::bind 实现无操作函子

发布于 2024-12-12 03:44:45 字数 320 浏览 0 评论 0原文

我有一个函数 void get(boost::functioncallback) {callback(); }。 我想进行像 get(boost::bind(/* don't know what to put here*/)); 这样的调用,而不实现任何其他函数、变量或结构,以便回调什么也不做。 是否可以在C++03中实现这样的“无操作”回调?

使用 boost::bind() 是首选,但不是必需的 - 可能,还有一些其他技巧可以实现我的目标。

I have a function void get(boost::function<void(void)> callback) { callback(); }.
I want to make a call like get(boost::bind(/* don't know what to put here*/)); without implementing any other functions, variables or structs, so that the callback does nothing.
Is it possible to implement such "no-op" callback in C++03 ?

Usage of boost::bind() is prefered but not required - may be, there are some other tricks to achieve my goal.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

心不设防 2024-12-19 03:44:45

可以使用诸如boost::bind(std::plus(), 0, 0)之类的东西,它应该被优化到没有。

如果您放宽限制并定义一个无操作函子,那么代码将会更加清晰。

You could use something like boost::bind(std::plus<int>(), 0, 0), which should be optimised away to nothing.

It would make the code rather clearer if you relaxed your restriction and defined a no-op functor instead.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文