C++26 Explained

C++26 is the informal name for the version of the International Organization for Standardization (ISO) and International Electrotechnical Commission (IEC) 14882 standard for the C++ programming language that follows C++23. The current working draft of this version is N5032.[1] Papers proposed and adopted into the standard by the C++ Standards Committee and minutes of the standardization meeting held at Sofia, Bulgaria and online in June 2025 are publicly available.[2] The draft wording is feature complete,[3] and is being sent out for international comment ballot.[4] After resolving some ballot comments at the November 2025 standardization meeting in Kona, Hawaii, the C++ Standards Committee is expected to finish resolving ballot comments, technically finalize the draft, and send the draft out for final approval ballot at the following standardization meeting[3] in London, United Kingdom in March 23 to 28, 2026.[5] [6]

Experimental and standard compilers implementing some of the upcoming features can be tried on short code snippets through the Compiler Explorer. Some of the compiler variants are distinguished only by the short identifiers of papers proposing the new features they implement, such as "P3372" for constexpr containers and adaptors.

Features

Changes that have been accepted into C++26 include:

Language

Library

Compile-time reflection support

Design-by-contract support

Data-parallel access (Single instruction, multiple data or SIMD) support

Hazard pointers for threading

Hive data structure support which reuses erased elements' memory (similar to an object pool). It is based on plf::colony.

Support for safe reclamation read-copy-update mechanism

In-place vector data structure support, which is a resizable, fixed capacity, inplace contiguous array

Support for accessing the IANA Character Sets registry

A free function linear algebra interface based on the BLAS

Debugging support and language features to aid debugger programs

Reception

Several people issued trip reports from the Sofia C++ Standards Committee meeting at which the draft became feature complete,[21] [22] and from the International C++ Conference, C++ On Sea, immediately afterward.[23]

All highlighted the introduction of compile-time reflection in particular as a major change. In particular, Herb Sutter, chair of the ISO C++ Standards Committee and Hana Dusíková, assistant chair of the "Language Evolution" working group of the C++ Standards Committee, described the potential impacts for including reflection to C++ as a "whole new language."[21]

The contracts feature for C++26 has been criticised by some in the C++ committee, for varying reasons.[24]

The trivial relocatability feature, which proposed the new identifiers/class property specifiers trivially_relocatable_if_eligible and replaceable_if_eligible[25], was removed from C++26 due to implementation bugs and deferred to a later standard.[26]

See also

External links

Notes and References

  1. Web site: Working Draft, Standard for Programming Language C++. 2025-12-15 . ISO/IEC . Open Standards.
  2. Web site: mailing2025-07 post-Sofia . JTC1/SC22/WG21 - The C++ Standards Committee - ISOCPP . 6 September 2025.
  3. Web site: C++ IS Schedule . JTC1/SC22/WG21 - The C++ Standards Committee - ISOCPP . 6 September 2025.
  4. Web site: The life of an ISO proposal: from "cool idea" to "international standard" . News, Status & Discussion about Standard C++ . Standard C++ Foundation . 6 September 2025.
  5. Web site: Upcoming Meetings, Past Meetings . News, Status & Discussion about Standard C++ . The Standard C++ Foundation . 6 September 2025.
  6. Web site: N5024 . Standard C++ Foundation . 2026-01-04.
  7. Web site: P2996R4 - Reflection for C++26. Wyatt Childers. etal. 26 June 2024. WG21. isocpp.org.
  8. Web site: Reflection: C++'s Decade-Defining Rocket Engine - Herb Sutter - CppCon 2025. youtube.com. Herb Sutter. CppCon. 23 January 2026.
  9. Web site: Annotations for Reflection. open-std.org. WG21. Wyatt Childers, Dan Katz, Barry Rezvin, Daveed Vandevoorde. 14 October 2024.
  10. Web site: Contract assertions (since C++26) - cppreference.com . 2025-03-09 . en.cppreference.com.
  11. Web site: C++ keywords - cppreference.com . 2025-07-27 . en.cppreference.com.
  12. Web site: Dargo . Sandor . C++26: user-generated static_assert messages . News, Status & Discussion about Standard C++ . The Standard C++ Foundation . 6 September 2025.
  13. https://en.cppreference.com/w/cpp/language/ub.html Undefined Behavior
  14. https://www.modernescpp.com/index.php/small-safety-improvements-in-the-c-26-core-language/ small safety improvements in the C++ core language
  15. https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2025/p3372r3.html constexpr containers and adaptors
  16. Web site: P3176R1: The Oxford variadic comma . 2024-12-09 . eisenwave.github.io.
  17. https://www.cppstories.com/2025/cpp26-safety-temp/ Improving Code Safety in C++26: Managers and Dangling References
  18. Web site: Sutter . Herb . Crate-training Tiamat, un-calling Cthulhu:Taming the UB monsters in C++ . Sutter's Mill.
  19. Web site: Sutter . Herb . Trip report: Summer ISO C++ standards meeting (St Louis, MO, USA) . Sutter's Mill . 6 September 2025.
  20. Web site: Execution control library (since C++26). cppreference.com. cppreference.com. 15 February 2026. cppreference.com.
  21. Web site: Sutter . Herb . Trip report: June 2025 ISO C++ standards meeting (Sofia, Bulgaria) . Sutter's Mill . 6 September 2025.
  22. Web site: Lopez-Gomez . Javier . Summer WG21 Meeting; trip report . Javier Lopez-Gomez personal site . 6 September 2025.
  23. Web site: Dargo . Sandor . Trip report: C++ On Sea 2025 . Sandor Dargo's Blog . 6 September 2025.
  24. Web site: C++26 Contract Assertions, Reasserted. WG 21. Timur Doumler. etal. open-std.org. 6 October 2025.
  25. Web site: C++ keywords - cppreference.com . 2025-07-27 . en.cppreference.com.
  26. Web site: Trip report: November 2025 ISO C++ standards meeting (Kona, USA). Herb Sutter. Sutter's Mill. 10 November 2025.