Linux Kernel & OS

ISO declines to ratify C++26 standard due to controversy over contracts feature

Key Takeaway

For the first time since 1998, the ISO has rejected a document from Working Group 21, stalling the C++26 standardization process over disagreements regarding language contracts.

Summary

The International Organization for Standardization (ISO) has taken the unprecedented step of declining to ratify a document presented by Working Group 21. This decision marks the first time since the initial C++ standard was established in 1998 that the main ISO body has rejected a proposal from the language's primary development group.

The impasse centers on a proposed 'contracts' feature intended for the C++26 standard. This feature would introduce formal pre-conditions and post-conditions directly into function signatures to improve code safety and correctness, but the proposal has generated significant debate within the standardization community.

The C++26 standardization impasse

  • Proposed Feature: The 'contracts' mechanism aims to allow developers to define formal requirements for function inputs (pre-conditions) and expected outputs (post-conditions).
  • Standardization Process: ISO's Working Group 21 is responsible for integrating amendments into a formal document for a final vote by the main ISO body.
  • Regulatory Conflict: The rejection stems from a lack of consensus regarding the implementation and scope of the contracts feature, leading the ISO to decline the entire document presented for the C++26 cycle.

Why it matters

This delay creates uncertainty for compiler developers and software engineers who rely on a predictable roadmap for language evolution. The stalled C++26 standard may impact the development of high-performance systems and safety-critical software that anticipated formal contract support.

Original reference: lwn.net →