Skip to content

C++26

Status note: This article is compiled from publicly available materials as of 2026-06-02. The C++26 standardization process, proposal acceptance status, and compiler support change rapidly. Verify against WG21 drafts, cppreference compiler support, and compiler release notes before merging.

Features Already in the Working Draft

Contracts

Language-level support for preconditions, postconditions, and assertions:

cpp
int sqrt(int n)
    pre (n >= 0)
    post (r: r * r <= n)
{
    // ...
}

Reflection

Compile-time reflection capabilities — querying type information, member lists, enum values, etc., at compile time. A paradigm shift for C++ metaprogramming. (P2996R7 has been accepted)

Pattern Matching

The inspect expression, similar to Rust's match, especially useful for types like variant and optional.

std::simd

Standardized SIMD types and operations for writing portable vectorized code. (P1928)

Senders/Receivers

A standardized asynchronous execution framework, more flexible and controllable than std::async. (P2300)

constexpr Extensions

More standard library functions available at compile time.

Feature Status Classification

StatusMeaningExample
In working draftAccepted for C++26Reflection (P2996), Contracts
Voted inPassed WG21 vote, awaiting mergeSenders/Receivers (P2300)
Still evolvingProposal still under revisionP3394 (annotations), P3436
Deferred to C++29Did not meet C++26 timelineSome pattern matching details
Experimental onlyCompiler experimental branch supportSome constexpr extensions

Compiler Support Status

CompilerReflectionContractsstd::simdNotes
Clang/LLVMExperimental (-freflection)In progressN/AReference implementation
GCCExperimental branchIn progress<experimental/simd>GCC 14+
MSVCIn progressIn progressN/A

Status Note

C++26 features are still evolving. This document tracks the latest developments, but content may lag behind the standard committee's latest decisions.

Reference sources:

Further Reading

Released under the MIT License