chriskohlhoff.asio
importStandalone asio exposed as the C++23 module `asio` (separate compilation)
import asio;
mcpp add chriskohlhoff.asio@1.38.1
Usage
From this repository's own test project — built and run by CI, not written for the website.
// 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 · project tests/examples/asio-module
Build
- modules
asio- targets
asio (lib)- language
c++23- import std
- no
- include dirs
*/include
Features
| feature | declares |
|---|---|
| ssl | sources, deps, defines |
| default | implies |
| separate-compilation | defines |
Sources (2)
mcpp_generated/asio.cppm*/src/asio.cpp
Generated files
mcpp_generated/asio.cppm