У меня следующая структура кода:
bool A(std::function<void()> callback) const {
B([this]() {
C(
std::bind(D, this, std::placeholders::_1));)
});
return true;
}
folly::Future<folly::Unit> B(const std::function<void()>& fn);
folly::Future<folly::Unit> C(std::function<void(folly::Optional<DataResult>)> fn);
Если бы D было просто:
void D(DataResult res) const {} <== Works
Я мог бы решить проблему. Но поскольку мне нужен обратный вызов в D, как это сделать? Я не возражаю, если DataResult передается в D в качестве побочного эффекта.
Для работы мне нужно следующее:
void D(std::function<void()> callback) const { <=== Doesn't work
callback();
}