bind
为什么即使我在每次调用中使用不同的参数类型,两个版本的编译和工作都没有问题?
- 版本 1 -> 参数 foo 与
- 版本 2 -> foo 的参数地址
我预计版本 1 会产生编译错误...
#include <iostream>
#include <functional>
using namespace std;
class Test
{
public:
bool doSomething(){ std::cout << "xxx"; return true;};
};
int main() {
Test foo;
// Version 1 using foo
std::function<bool(void)> testFct = std::bind(&Test::doSomething, foo);
// Version 2 using &foo
std::function<bool(void)> testFct2 = std::bind(&Test::doSomething, &foo);
testFct();
testFct2();
return 0;
}