GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • stdexec
  • User’s Guide
  • Developer’s Guide
  • Reference
  • View page source

This view

  • Original page
  • New address

GeezerVison is showing nvidia.github.io — Welcome to stdexec — stdexec dev documentation

Welcome to stdexec

stdexec is the reference implementation for C++26’s asynchronous execution framework, std::execution. It provides a modern, composable, and efficient abstraction for asynchronous programming in C++.

The Sender Abstraction in C++26

The Sender abstraction is a foundational model for asynchronous programming in modern C++, proposed for standardization in C++26. It aims to unify and modernize asynchronous workflows across the C++ ecosystem.

🔧 Motivation

C++’s legacy async mechanisms — std::async, futures, coroutines, callbacks, threads, mutexes, etc. — have several limitations:

  • Inflexible and hard to compose safely.

  • No way to specify where work should execute.

  • Runtime overhead, dynamic allocations, and shared ownership.

  • Difficult to customize or extend.

  • Incompatible across ecosystems (e.g., Boost, Folly, Abseil, etc.).

The Sender abstraction introduces a compositional model of async computations that separates concerns cleanly, enabling:

  • A unified async model: Works for compute, I/O, networking, UI, etc.

  • Generic algorithms that capture common async patterns.

  • Combinators for building async workflows.

  • Structured cancellation and error handling.

  • Coroutine integration: co_await senders directly within coroutines and pass awaitables to sender algorithms.

  • Zero-overhead composition (compile-time plumbing with no runtime allocations or reference counting).

  • Full support for customization: Plug in your own schedulers, senders, adaptors, allocators, stop tokens, etc.

Senders end Callback Hell.

🚦 Standardization Status (as of 2026)

  • The core Sender model has been accepted into the C++ standard for C++26.

  • Additional facilities have also been accepted such as

    • a system scheduler,

    • a sender-aware coroutine task type,

    • an async scope for spawning tasks dynamically.

  • Interop with networking is being explored for C++29.

  • Widely prototyped and tested in libraries and production settings.

🔚 Summary

The Sender abstraction:

  • Brings modern, composable async programming to C++.

  • Serves as a foundation for future concurrency features.

  • Enables high-performance, coroutine-friendly workflows.

  • Is set to become the standard async model in C++26.

📚 Additional Reading

  • User’s Guide
    • 🧱 Core Concepts for Users
    • 🧮 Composition via Algorithms
    • 📖 Algorithms in Depth
    • 🔄 Coroutine Integration
  • Developer’s Guide
    • Core Concepts for Developers
    • Core Customization Points
    • Building a Custom Algorithm: simple_then
    • Building a Custom Scheduler: simple_inline_scheduler
    • Customizing stdexec’s algorithms via domains
  • Reference
    • Concepts
    • Core Customization Points
    • Sender Factories
    • Sender Adaptors
    • Sender Consumers
    • Utilities

Indices and tables

  • Index

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.