C++26

C++26 is the informal name for the open standard revision of the International Organization for Standardization (ISO) and International Electrotechnical Commission (IEC) 14882 standard for the C++ programming language that follows C++23, officially shipped by WG21 on 28 March 2026. The final draft of C++26 was N5050.

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. The draft wording is feature complete, and is being sent out for international comment ballot. After resolving some ballot comments at the November 2025 standardization meeting in Kona, Hawaii, the C++ Standards Committee finished expected resolving ballot comments, technically finalized the draft, and send the draft out for final approval ballot at the following standardization meeting in London, United Kingdom from 23 to 28 of March 2026.

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.

No compiler fully supports C++26 yet, or defaults to it. As of 30 April 2026, GCC supports most of the C++26 features beginning with GCC 16.1.

As of 2026, C++26 is the next revision of the C++ programming language standard. ISO/IEC JTC 1/SC 22/WG21 is responsible for the standardization process. N5046 was the May 2026 working draft (replacing N5032); the Draft International Standard was not completed for ISO ballot at that time.

The compiler implementations started supporting C++26 experimentally even before the standard was finalised. GCC has implemented some C++26 features with the flag -std=c++26, but is still experimental as the ISO C++26 standard was finalizing its standardization.

Features

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

Language

Library

Reception

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

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 C++ reflection as a "whole new language." Sutter further described C++26 as the most 'compelling' release since C++11.

The contracts feature was criticised by some in the C++ committee, for varying reasons (such as questioning its safety, complexity, or implementation details); this has been such a point of contention that the October 2026 final publication was disapproved, apparently over the inclusion of contracts for C++26.

The trivial relocatability feature, which proposed new specifiers trivially_relocatable_if_eligible and replaceable_if_eligible, was removed from C++26 due to implementation bugs and deferred to a later standard.

See also

References

  1. ↑ Report from the Croydon 2026 ISO C++ Committee meeting, "C++26 was officially shipped by WG21 on Saturday, March 28, 2026!". 28 March 2026.
  2. 1 2 Sutter, Herb (29 March 2026). "C++26 is done! — Trip report: March 2026 ISO C++ standards meeting (London Croydon, UK)". herbsutter.com. Herb Sutter. Retrieved 29 March 2026.
  3. ↑ "Working Draft, Standard for Programming Language C++" (PDF). Open Standards. ISO/IEC. 2026-06-01.
  4. ↑ "mailing2025-07 post-Sofia". JTC1/SC22/WG21 - The C++ Standards Committee - ISOCPP. Retrieved 6 September 2025.
  5. 1 2 "C++ IS Schedule" (PDF). JTC1/SC22/WG21 - The C++ Standards Committee - ISOCPP. Retrieved 6 September 2025.
  6. ↑ "The life of an ISO proposal: from "cool idea" to "international standard"". News, Status & Discussion about Standard C++. Standard C++ Foundation. Retrieved 6 September 2025.
  7. ↑ "Upcoming Meetings, Past Meetings". News, Status & Discussion about Standard C++. The Standard C++ Foundation. Retrieved 6 September 2025.
  8. ↑ "N5024" (PDF). Standard C++ Foundation. Retrieved 2026-01-04.
  9. ↑ GCC 16.1 Released With AMD Zen 6 Support, Algol 68 & Many C++ Improvements, Michael Larabel. phoronix.com. 8 May 2026. 8 May 2026.
  10. ↑ GCC 16 Release Series, gcc.gnu.org. 8 May 2026. Retrieved 8 May 2026.
  11. ↑ "N5047 Editors' Report". ISO/IEC JTC 1/SC 22/WG21. 12 May 2026. Retrieved 1 October 2026.
  12. ↑ "C++ Standards Support in GCC". GCC. Retrieved 1 October 2026.
  13. ↑ Wyatt Childers; et al. (26 June 2024). "P2996R4 - Reflection for C++26". isocpp.org. WG21.
  14. ↑ cppreference.com. "Reflection operator (since C++26)". cppreference.com. cppreference.com. Retrieved 2 May 2026.
  15. ↑ Herb Sutter (23 January 2026). "Reflection: C++'s Decade-Defining Rocket Engine - Herb Sutter - CppCon 2025". YouTube. CppCon.
  16. ↑ cppreference.com (21 September 2026). "std::meta::info". cppreference.com. cppreference.com.
  17. ↑ cppreference.com. "Splice specifiers (since C++26)". cppreference.com. cppreference.com. Retrieved 2 May 2026.
  18. ↑ Wyatt Childers, Dan Katz, Barry Rezvin, Daveed Vandevoorde (14 October 2024). "Annotations for Reflection". open-std.org. WG21.{{cite web}}: CS1 maint: multiple names: authors list (link)
  19. ↑ "Contract assertions (since C++26) - cppreference.com". en.cppreference.com. Retrieved 2025-03-09.
  20. 1 2 "C++ keywords - cppreference.com". en.cppreference.com. Retrieved 2025-07-27.
  21. ↑ Dargo, Sandor. "C++26: user-generated static_assert messages". News, Status & Discussion about Standard C++. The Standard C++ Foundation. Retrieved 6 September 2025.
  22. ↑ Undefined Behavior, cppreference.com
  23. ↑ cppreference.com. "C++ attribute: indeterminate (since C++26)". cppreference.com. cppreference.com. Retrieved 18 April 2026.
  24. ↑ small safety improvements in the C++ core language
  25. ↑ cppreference.com. "std::memory_order". cppreference.com. cppreference.com. Retrieved 18 April 2026.
  26. ↑ cppreference.com. "std::kill_dependency". cppreference.com. cppreference.com. Retrieved 18 April 2026.
  27. ↑ Hans Boehm (14 February 2025). "Defang and deprecate memory_order::consume" (PDF). open-std.org. WG21.
  28. ↑ cppreference.com. "C++ attribute: carries_dependency (since C++11) (removed in C++26)". cppreference.com. cppreference.com. Retrieved 18 April 2026.
  29. ↑ constexpr containers and adaptors, openstd.org
  30. ↑ constexpr virtual inheritance, open-std.org
  31. 1 2 constexpr exceptions, open-std.org.
  32. ↑ "P3176R1: The Oxford variadic comma". eisenwave.github.io. Retrieved 2024-12-09.
  33. ↑ a nice placeholder with no name, open-std.org
  34. ↑ Improving Code Safety in C++26: Managers and Dangling References
  35. ↑ Expansion Statements open-std.org
  36. ↑ Trip report: June 2025 ISO C++ standards meeting (Sofia, Bulgaria). "(...) adds “template for” to make it easy to loop over reflection data at compile time." herbsutter.com. 2025-06-21
  37. ↑ Michael Spencer (10 February 2025). "Allow attaching main to the global module". open-std.org. WG21.
  38. ↑ René Ferdinand Rivera Morell (5 July 2023). "Debugging Support". open-std.org. WG21.
  39. ↑ Maged M. Michael, Michael Wong, Paul McKenney, Andrew Hunter, Daisy S. Hollman, JF Bastien, Hans Boehm, David Goldblatt, Frank Birbacher, Mathias Stearn (2 March 2023). "Hazard Pointers for C++26" (PDF). open-std.org. WG21.{{cite web}}: CS1 maint: multiple names: authors list (link)
  40. ↑ Matthew Bentley (13 December 2024). "Introduction of std::hive to the standard library". open-std.org. WG21.
  41. ↑ Gonzalo Brito Gadeschi, Timur Doumler, Nevin Liber, David Sankel (26 June 2024). "inplace_vector". open-std.org. WG21.{{cite web}}: CS1 maint: multiple names: authors list (link)
  42. ↑ Mark Hoemmen, Daisy Hollman, Christian Trott, Daniel Sunderland, Nevin Liber, Alicia Klinvex, Li-Ta Lo, Damien Lebrun-Grandie, Graham Lopez, Peter Caday, Sarah Knepper, Piotr Luszczek, Timothy Costa (10 November 2023). "A free function linear algebra interface based on the BLAS". open-std.org. WG21.{{cite web}}: CS1 maint: multiple names: authors list (link)
  43. ↑ Paul E. McKenney (8 March 2023). "Read-Copy Update (RCU)" (PDF). open-std.org. WG21.
  44. ↑ Matthias Kretz (22 November 2024). "std::simd - merge data-parallel types from the Parallelism TS 2" (PDF). open-std.org. WG21.
  45. 1 2 3 Sutter, Herb. "Trip report: June 2025 ISO C++ standards meeting (Sofia, Bulgaria)". Sutter's Mill. Retrieved 6 September 2025.
  46. ↑ Michał Dominiak, Georgy Evtushenko, Lewis Baker, Lucian Radu Teodorescu, Lee Howes, Kirk Shoop, Michael Garland, Eric Niebler, Bryce Adelstein Lelbach (28 June 2024). "P2300R10 std::execution". open-std.org. WG21.{{cite web}}: CS1 maint: multiple names: authors list (link)
  47. ↑ cppreference.com. "Execution control library (since C++26)". cppreference.com. cppreference.com. Retrieved 15 February 2026.
  48. ↑ Eric Niebler. "Welcome to stdexec". nvidia.github.io. Nvidia Corporation. Retrieved 11 July 2026.
  49. ↑ Sutter, Herb. "Trip report: Summer ISO C++ standards meeting (St Louis, MO, USA)". Sutter's Mill. Retrieved 6 September 2025.
  50. ↑ Varlamov, Konstantin; Dionne, Louis (14 February 2025). "Standard library hardening". open-std.org. WG21.
  51. ↑ Varlamov, Konstantin; Dionne, Louis; Meredith, Alisdair (20 June 2025). "Minor additions to C++26 standard library hardening". open-std.org. WG21.
  52. ↑ Voutilainen, Ville; Wakely, Jonathan; Spicer, John; Lavavej, Stephan T. (6 November 2025). "Standard library hardening". open-std.org. WG21.
  53. ↑ Steve Downey, Peter Sommerlad (4 April 2025). "std::optional<T&>" (PDF). open-std.org. WG 21.
  54. ↑ Lopez-Gomez, Javier. "Summer WG21 Meeting; trip report". Javier Lopez-Gomez personal site. Retrieved 6 September 2025.
  55. ↑ Dargo, Sandor. "Trip report: C++ On Sea 2025". Sandor Dargo's Blog. Retrieved 6 September 2025.
  56. ↑ Timur Doumler; et al. (6 October 2025). "C++26 Contract Assertions, Reasserted" (PDF). open-std.org. WG 21.
  57. ↑ Timur Doumler; et al. (23 October 2026). "Do not remove Contracts from C++26" (PDF). open-std.org. WG21.
  58. ↑ Herb Sutter (10 November 2025). "Trip report: November 2025 ISO C++ standards meeting (Kona, USA)". Sutter's Mill.