Голосование национальных комитетов 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 или её отмены требуется достижение консенсуса, но противники контрактного программирования не намерены менять свою позицию, а сторонники не хотят обесценивать многолетнюю работу.
Источник: https://www.opennet.ru/opennews/art.shtml?num=66614
Источник: https://www.opennet.ru/opennews/art.shtml?num=66614