chriskohlhoff.asio
importStandalone asio exposed as the C++23 module `asio` (separate compilation)
import asio;
mcpp add chriskohlhoff.asio@1.38.1
用法
来自本仓库自己的测试项目 —— CI 真的编译并运行过,不是为了网站写的。
// Core executor/timer behavior over the module surface: strand FIFO order,
// work-guard-driven run loop, thread_pool, and timer cancellation mapping to
// asio::error::operation_aborted. Module consumers pair `import asio;` with
// `import std;` (no text #include mixing).
import std;
import asio;
int main() {
using namespace std::chrono_literals;
asio::io_context io;
auto guard = asio::make_work_guard(io);
auto serial = asio::make_strand(io);
asio::steady_timer timer(io, 2ms);
std::atomic<int> posted{0};
std::mutex order_mutex;
std::vector<int> order;
bool timer_called = false;
asio::post(serial, [&] {
std::lock_guard lock(order_mutex);
// …
tests/examples/asio-module/tests/core.cpp · 项目 tests/examples/asio-module
构建
- modules
asio- targets
asio (lib)- language
c++23- import std
- no
- include dirs
*/include
特性
| 特性 | 声明了 |
|---|---|
| ssl | sources, deps, defines |
| default | implies |
| separate-compilation | defines |
源文件 (2)
mcpp_generated/asio.cppm*/src/asio.cpp
生成的文件
mcpp_generated/asio.cppm