#include <functional>
class MyClass
{
public:
void foo(int a) {}
};
int main() {
MyClass classInstance;
// Funktioniert
std::function<void(int)> function = std::bind(&MyClass::foo, &classInstance, 3);
// Funktioniert nicht!
//std::function<void(int)> function3 = std::bind(&MyClass::foo, &classInstance);
// Funktioniert!
std::function<void(int)> function2 = [&](int a) {
classInstance.foo(a);
};
return 0;
}
I2luY2x1ZGUgPGZ1bmN0aW9uYWw+CgpjbGFzcyBNeUNsYXNzCnsKcHVibGljOgoJdm9pZCBmb28oaW50IGEpIHt9Cn07CgppbnQgbWFpbigpIHsKCU15Q2xhc3MgY2xhc3NJbnN0YW5jZTsKCQoJLy8gRnVua3Rpb25pZXJ0CglzdGQ6OmZ1bmN0aW9uPHZvaWQoaW50KT4gZnVuY3Rpb24gPSBzdGQ6OmJpbmQoJk15Q2xhc3M6OmZvbywgJmNsYXNzSW5zdGFuY2UsIDMpOwoJCgkvLyBGdW5rdGlvbmllcnQgbmljaHQhCgkvL3N0ZDo6ZnVuY3Rpb248dm9pZChpbnQpPiBmdW5jdGlvbjMgPSBzdGQ6OmJpbmQoJk15Q2xhc3M6OmZvbywgJmNsYXNzSW5zdGFuY2UpOwoJCgkvLyBGdW5rdGlvbmllcnQhCglzdGQ6OmZ1bmN0aW9uPHZvaWQoaW50KT4gZnVuY3Rpb24yID0gWyZdKGludCBhKSB7CgkJY2xhc3NJbnN0YW5jZS5mb28oYSk7Cgl9OwoJcmV0dXJuIDA7Cn0=