如果函数指针不需要 amp; 符号,为什么 boost::bind 需要一个?
If ampersands aren't needed for function pointers, why does boost::bind require one?
我一直相信函数指针不需要符号:
函数指针需要一个安培数和吗
然而,我看到的每一个使用boost::bind
的例子都显示了一个,在大多数情况下,如果省略它,我的编译器会给出一个典型的难以理解的错误消息。
synchronize(boost::bind(&Device::asyncUpdate , this, "ErrorMessage")); // Works
synchronize(boost::bind(Device::asyncUpdate , this, "ErrorMessage")); // Fails
假设boost::bind
的第一个参数基本上是函数指针,我错了吗?
函数指针不需要它,成员函数指针需要它。
Device::asyncUpdate
是成员函数,正如您所猜测的,因为它被绑定到this
。
这是n3337,5.3.1.4 的规范性引用
只有当显式&使用,并且其操作数是一个不包含在括号中的限定id。
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- 我们应该在使用 std::bind 应用之前检查一个不为空的函数吗?
- 我正在尝试制作一个在 std::bind 之前匹配的网络绑定函数
- 在另一个函数中使用std::bind返回对象和占位符作为参数
- 创建一个 boost::线程 带有 boost::bind() 或不带
- c++:如何编写一个类似std::bind的对象来检查超精细的参数
- 将函数指针作为参数传递给 std::bind 中的另一个函数
- boost::bind 返回一个函数对象,它是需要指针的函数的参数
- 为什么make_unique有一个额外的移动,可以将 std::bind 作为参数的构造函数
- 如何'std::bind()'一个标准的库算法
- std::bind 一个绑定函数
- boost::bind() 一个成员函数,用于提升::函数,对象指针作为占位符
- 如果函数指针不需要 amp; 符号,为什么 boost::bind 需要一个?
- QTcpSocket:使用bind()选择源接口,以便使用connectToHost()连接到远程主机:需要一个解决方法
- 如何将两个独立的boost::bind()组合为一个boost::函数
- 如何使用boost::bind将io_service对象传递给一个新线程
- 将一个模板类作为arg参数传递给std::bind
- 如何创建一个带有boost::bind结果的参数的函数
- 我可以使用boost-bind定义一个比较器来对STL列表进行排序吗