c++ - 混用 std: :'s and boost::' s::bind 和::function 会导致问题吗?

标签 c++ boost c++11 std

我认为答案是否定的,但我只是想确定一下。

如果我将 std::function 作为函数的参数,传入 boost::bind 是否有任何问题,反之亦然?

编辑:

我发现当你包含 boost\bind.h 时,boost::bind 使用的占位符被直接导入到命名空间中,并且它们与 std::bind 不兼容。对于 std::bind,您必须显式引用占位符,如下所示:std::placeholders::_1,或执行一些其他类型定义或使用魔法使它们同时可用。

最佳答案

没有。 std::(和boost::)function 的全部目的是它们可以接受任何 函数对象可以使用正确的签名调用它——包括 lambda、仿函数和任何类型绑定(bind)的结果。他们不关心你的函数对象来自哪里或者它是什么类型。

你甚至可以将它们相互绑定(bind),虽然我不太确定你为什么想要这样做。

关于c++ - 混用 std: :'s and boost::' s::bind 和::function 会导致问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12235598/

相关文章:

c++ - 在 GCC 4.7.2 和 Clang 3.2 中显然缺少 getline() 的重载,将 RRef 流式传输

c++ - 使用导入的静态函数构建 C++ 类

c++ - 是否有任何 ATL 支持的宏来检查 hresults 并返回值?

c++ - yaml-cpp 的编译器错误 - 未定义对 `YAML::detail::node_data::convert_to_map` 的引用

c++ - 如何在手动编码时以直接的方式检测模板函数的适当返回类型

c++ - 为什么const对不是boost_is_pair?

c++ - 线程管理和与 boost::thread 的并行性

c++ - 依赖型自动扣除

c++ - 使用模板访问成员变量

c++ - 如何使用以列表作为值的无序映射