mcpp index

chriskohlhoff.asio

import

Standalone 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

featuredeclares
sslsources, deps, defines
defaultimplies
separate-compilationdefines

Sources (2)

  • mcpp_generated/asio.cppm
  • */src/asio.cpp

Generated files

  • mcpp_generated/asio.cppm

Versions

VersionPlatforms Mirrorssha256
1.38.1 latest LinuxWindowsmacOS CN GLOBAL 2827b229972b…