c++26 · iso/iec 14882:2026 (draft)

В разработке комитетомUnder committee development

Формальная ратификация ожидается в 2026 году, но набор фич уже в основном заморожен (feature freeze прошёл на встрече комитета). Крупнейшие добавления — static reflection (язык) и std::execution (библиотека), плюс доводка concurrency (hazard_pointer, rcu) и синтаксический сахар. 14 фич, каждая — отдельная страница.Formal ratification is expected in 2026, but the feature set is mostly frozen already (feature freeze passed at a committee meeting). The largest additions are static reflection (language) and std::execution (library), plus concurrency polish (hazard_pointer, rcu) and syntactic sugar. 14 features, each its own page.

МетапрограммированиеMetaprogramming

крупнейшее добавление в языкеthe largest language addition

Асинхронность и конкурентностьAsynchrony and concurrency

senders/receivers, lock-free reclamationsenders/receivers, lock-free reclamation

Численные вычисленияNumerical computing

SIMD и линейная алгебраSIMD and linear algebra

Ядро языкаCore language

синтаксис, контракты, безопасностьsyntax, contracts, safety
07

КонтрактыContracts

pre/post/contract_assert — предусловия и постусловия функций как часть синтаксиса языка, а не комментарий или assert().pre/post/contract_assert — function pre- and postconditions as part of the language syntax, not a comment or an assert().

08

Placeholder-переменные (_)Placeholder variables (_)

_ как имя для намеренно неиспользуемой переменной — можно объявить несколько раз в одной области видимости._ as a name for an intentionally unused variable — can be declared multiple times in the same scope.

09

Pack в structured bindingsPack in structured bindings

auto [first, ...rest] = tuple — захват "остатка" элементов пакетом вместо явного перечисления каждого.auto [first, ...rest] = tuple — capturing the "remaining" elements as a pack instead of naming each one.

10

Variadic friend-объявленияVariadic friend declarations

friend для целого параметр-пакета типов одной декларацией вместо ручного дублирования на каждый тип.friend for an entire type parameter pack in one declaration instead of manual duplication per type.

11

= delete("reason")

Текстовое пояснение прямо в объявлении удалённой функции — попадает в текст ошибки компилятора.A textual explanation right in the deleted function's declaration — surfaces in the compiler's error text.

12

Индексация параметр-пакетовPack indexing

Pack...[N] — доступ к N-му элементу параметр-пакета напрямую, без вспомогательных шаблонов вроде tuple_element.Pack...[N] — direct access to the Nth element of a parameter pack, no helper templates like tuple_element needed.

Безопасность и инструментарийSafety and tooling

UB-контроль и отладкаUB control and debugging

порядок чтения и связи с предыдущими стандартамиreading order and links to earlier standards

std::execution стоит читать после освоения корутин (cpp20/coroutines.html) и jthread/stop_token (cpp20/jthread-stop-token.html) — senders/receivers во многом заменяют собой ручную композицию асинхронных операций, которую раньше приходилось строить поверх этих примитивов. hazard_pointer и rcu логично читать вместе — оба решают задачу безопасного освобождения памяти в конкурентных структурах данных, но разными путями, и в cpp_concurrency.md уже есть их предварительное сравнение.std::execution is worth reading after mastering coroutines (cpp20/coroutines.html) and jthread/stop_token (cpp20/jthread-stop-token.html) — senders/receivers largely replace the manual composition of asynchronous operations that previously had to be built on top of those primitives. hazard_pointer and rcu are naturally read together — both solve safe memory reclamation in concurrent data structures, but via different paths, and cpp_concurrency.md already has a preliminary comparison of the two.

std::linalg логично читать после std::mdspan из C++23 (cpp23/mdspan.html) — linalg целиком построен поверх mdspan как представления матриц и векторов. Reflection стоит читать в самом начале раздела — многие последующие фичи (contracts, structured bindings pack) концептуально с ней не связаны, но само по себе это самое объёмное и медленно усваиваемое нововведение стандарта.std::linalg is naturally read after C++23's std::mdspan (cpp23/mdspan.html) — linalg is built entirely on top of mdspan as its representation of matrices and vectors. Reflection is worth reading first in this section — many of the later features (contracts, structured bindings pack) aren't conceptually related to it, but it is, on its own, the standard's most substantial and slowest-to-absorb addition.