Dispute over Contracts feature delays C++26 standard ratification and risks postponing release
The upcoming C++26 standard faces a potential delay due to a divisive disagreement within the ISO C++ working group over the inclusion of the Contracts feature, which adds runtime checks for preconditions, postconditions, and assertions aimed at improving code safety. The Draft International Standard of C++26 failed its ballot primarily because of objections to Contracts, with detractors including the language's creator Bjarne Stroustrup who criticizes the feature for adding complexity, potential bloat, and reliance on a hastily implemented design. Proponents argue that the feature has been thoroughly vetted and serves to harden C++ against programming errors that could lead to security vulnerabilities, especially relevant given the rise of safer languages like Rust. The dispute has disrupted the standardization process and may delay the release of the language, pushing the formal rollout to 2027. The working group is considering options such as removing Contracts from the current standard, relocating it to a separate specification, or re-voting after further discussion.
Linha do tempo
-
Dispute over Contracts feature delays C++26 standard ratification and risks postponing release
ler a análise desta fonte ocultar
The upcoming C++26 standard faces a potential delay due to a divisive disagreement within the ISO C++ working group over the inclusion of the Contracts feature, which adds runtime checks for preconditions, postconditions, and assertions aimed at improving code safety. The Draft International Standard of C++26 failed its ballot primarily because of objections to Contracts, with detractors including the language's creator Bjarne Stroustrup who criticizes the feature for adding complexity, potential bloat, and reliance on a hastily implemented design. Proponents argue that the feature has been thoroughly vetted and serves to harden C++ against programming errors that could lead to security vulnerabilities, especially relevant given the rise of safer languages like Rust. The dispute has disrupted the standardization process and may delay the release of the language, pushing the formal rollout to 2027. The working group is considering options such as removing Contracts from the current standard, relocating it to a separate specification, or re-voting after further discussion.