К содержанию

Член комитета объяснил провал проекта международного стандарта C++26

Андреас Фертиг 3 ноября назвал причиной отклонения спор о программных контрактах и заявил, что работа над стандартом оказалась в тупике.

В Telegram
Папка проекта C++26 застряла перед щелью утверждения из-за переключателя проверки программного контракта.
Иллюстрация создана hegai.media с помощью ИИ

Член комитета по стандартизации C++ Андреас Фертиг 3 ноября объяснил отклонение проекта C++26 разногласиями вокруг программных контрактов. По его оценке, сторонникам и противникам нынешней версии механизма будет сложно найти компромисс. Голосование национальных комитетов ISO завершилось 22 октября, проект не прошёл предпоследний этап утверждения. Фертиг считает этот случай первым подобным провалом новой версии C++.

По итогам, которые сообщили Роберт Сикорд и Матеуш Пуш, проект поддержали 12 из 20 национальных комитетов со статусом участвующих членов, тогда как требовалось не менее 14. Против проголосовали девять из 22 комитетов, или 41%, при допустимом пределе в 25%. Пуш опубликовал эти результаты 25 октября.

Главным предметом спора стал механизм программных контрактов, или Contracts. Он позволяет записывать в коде условия вызова функции и ожидаемый результат её работы. В проекте C++26 настройки сборки могут отключить проверку такого условия или определить реакцию программы на его нарушение. Критики считают, что записанная разработчиком проверка не должна исчезать из собранной программы. Сторонники проекта утверждают, что эти возражения уже обсуждались, а исключение контрактов снова отложит механизм: предыдущую версию убрали из проекта C++20 в 2019 году.

Для разработчиков немедленных изменений нет: голосование не меняет возможности, уже доступные в компиляторах. GCC 16 поддерживает текущий вариант контрактов экспериментально, а в Clang его пока нет.

С 16 по 21 ноября рабочая группа ISO по C++, известная как WG21, должна собраться в Бузиусе и подготовить рекомендацию по дальнейшей судьбе проекта. Правила ISO позволяют отправить исправленный документ на новое голосование, вернуть его на более раннюю стадию, выпустить как техническую спецификацию или отменить проект. Решение примет председатель подразделения ISO по языкам программирования SC22, а для отмены потребуется голосование всего комитета.

Как процитировать этот материал

«Член комитета объяснил провал проекта международного стандарта C++26». hegai.media, 4 ноября 2026 г.. https://hegai.media/novosti/chlen-komiteta-obyasnil-proval-proekta-mezhdunarodnogo-standarta-c-26--96a49be8