【发布时间】:2021-01-23 23:30:00
【问题描述】:
我正在探索并尝试学习 C++ 协程(在 C++20 中添加)。我正在使用的 SDK 具有异步 API 调用,它们都接受回调,回调是在 SDK 管理的某个后台线程上调用的。
namespace third_party {
bool api_call(const std::string& some_parameter, const std::function<void(std::error_code)>& callback);
} // namespace third_party
我想将此 API 调用包装成可以等待的东西:
namespace my_third_party_sdk_wrapper {
cppcoro::task<std::error_code> api_call(const std::string& some_parameter);
cppcoro::task<std::error_code> api_call(const std::string& some_parameter, cppcoro::cancellation_token token);
} // namespace my_third_party_sdk_wrapper
我正在考虑使用 cppcoro 库,但这不是必需的,除非包装器的实现变得更加简单。
问题是我不知道如何实现包装器。
【问题讨论】:
标签: c++ c++20 c++-coroutine