#include <functional>
#include <iostream>

using namespace std;

class C {
public:
	C() {
		auto f = bind(&C::work,
		              this,
		              static_cast<function<bool()>>(bind(&C::step1, this)),
		              static_cast<function<bool()>>(bind(&C::step2, this)));

		f();
	}
private:
	void work(function<bool()> fn1, function<bool()> fn2) {
		cout << fn1() << ' ' << fn2() << endl;
	}

	bool step1() { return true; }
	bool step2() { return true; }
};

int main() {
	C foo;
}