Rod*_*ddy 11 c++ function-pointers boost-bind
我一直认为函数指针不需要&符号:
然而,我所看到的每个使用的例子都boost::bind显示了一个,而我的编译器 - 在大多数情况下 - 如果省略则会给出一个通常难以理解的错误信息.
synchronize(boost::bind(&Device::asyncUpdate , this, "ErrorMessage")); // Works
synchronize(boost::bind(Device::asyncUpdate , this, "ErrorMessage")); // Fails
Run Code Online (Sandbox Code Playgroud)
假设boost::bind第一个参数基本上是函数指针,我错了吗?
jro*_*rok 21
函数指针不需要它,成员函数指针就可以了.
Device::asyncUpdate是成员函数,因为你可以猜测,因为它被绑定this.
这是n3337,5.3.1/4的规范性引用
仅当使用显式&时,才会形成指向成员的指针,并且其操作数是未括在括号中的限定符.