Темы



Национальные комитеты ISO отклонили принятие стандарта C++26

Коротко сгенерировано ИИ по тексту статьи
  • Национальные комитеты ISO отклонили утверждение C++26 — впервые в истории основного стандарта C++.
  • Главной причиной стали контракты с операторами pre, post и contract_assert, которые ряд комитетов счёл недостаточно зрелыми.
  • Заседание WG21 назначено на 16 ноября; среди вариантов — новое голосование, возврат к рассмотрению, техспецификация или отмена проекта.

Почему это важно: Для дальнейшего продвижения или отмены C++26 требуется консенсус, а доверие участников пошатнулось.

Голосование национальных комитетов ISO (NB, National Bodies) завершилось отказом утверждения международного стандарта C++26, финальный вариант спецификации для которого был принят в марте. Это первый подобный случай в истории развития основного стандарта C++. Из возможных путей развития событий отмечается выставление переработанного черновика стандарта на новое голосование национальных комитетов, возвращение черновика на стадию рассмотрения комитетом по стандартизации языка C++, публикация в виде технической спецификации, а не стандарта, или отмена проекта C++26 (возврат к C++23 и перенос всех утверждённых нововведений в C++29 c повторным согласованием всех предложений).

Основной причиной отклонения стандарта стало включение в язык элементов контрактного программирования (Contracts), позволяющих определять формальные спецификации интерфейсов при помощи трёх новых операторов: pre (предусловие), post (постусловие) и contract_assert (проверка утверждения). Представители нескольких национальных комитетов посчитали данную функциональность недостаточно зрелой, несмотря на то, что при утверждении рабочей группой WG21 за неё проголосовали более 2/3 участников. Изначально, поддержку контрактного программирования намеревались включить в стандарт C++20, но отправили на доработку.

Ситуация усугубляется нарушением устоявшейся практики голосования, в соответствии с которой представители национальных комитетов ISO соглашались с компромиссами, раеее согласованными в рабочих группах, и голосовали против стандарта только при обнаружении до этого не замеченных недостатков или при выявлении процедурных ошибок. На этот раз, по мнению члена комитета по стандартизации C++ из Германии, при голосовании против использовались аргументы, которые уже были рассмотрены и отвергнуты рабочей группой WG21 на предыдущих этапах подготовки спецификации.

Следующее заседание рабочей группы намечено на 16 ноября и пока не ясно смогут ли участники договориться в ситуации пошатнувшегося доверия. Для дальнейшего продвижения спецификации C++26 или её отмены требуется достижение консенсуса, но противники контрактного программирования не намерены менять свою позицию, а сторонники не хотят обесценивать многолетнюю работу.



Источник: http://www.opennet.ru/opennews/art.shtml? num=66614

©  OpenNet