차세대 C++ 표준인 C++26이 2026년 10월 23일, ISO 국제표준안(DIS) 투표에서 필요한 3분의 2 찬성을 얻지 못해 부결되는 초유의 사태가 발생했습니다. C++ 역사상 DIS 단계에서 부결된 것은 처음으로 알려졌으며, 이는 C++ 표준화 과정에 상당한 파장을 일으키고 있습니다.
이번 부결의 핵심 쟁점은 '컨트랙트(Contracts)' 기능입니다. 컨트랙트는 함수가 호출되기 전의 사전조건(precondition)과 호출된 후의 사후조건(postcondition)을 명시하여 코드의 안정성을 높이는 기능으로, 수년간의 논의와 여러 차례의 다수결을 거쳐 C++26에 포함될 예정이었습니다. 심지어 2026년 3월 WG21(C++ 표준화 위원회) 초안 투표에서도 큰 찬성으로 통과되었지만, 최종 DIS 투표에서 여러 국가 회원기관(NB)이 컨트랙트 기능이 아직 표준에 포함해 출시할 만큼 준비되지 않았다고 판단하여 반대표를 던진 것입니다. 이들은 컨트랙트가 C++의 복잡성을 가중하고, 기존의 타입 안전성(type safety) 및 메모리 안전성(memory safety) 문제를 해결하는 데 충분치 않다고 보았습니다.
이번 부결로 인해 C++26 표준의 출시는 불가피하게 지연될 전망입니다. 향후 수정안의 DIS 재투표, 위원회 단계 복귀, 기술 명세 발행, 프로젝트 취소 등 여러 선택지가 있지만, 어느 경로를 택하든 WG21 내 다수의 동의가 필요하며 상당한 시간이 소요될 것입니다. 특히 표준화위원 안드레아스 퍼티그(Andreas Fertig)는 이번 사태가 C++ 커뮤니티 내 협업의 신뢰를 흔들었다고 지적하며, 앞으로 나아가기 위해서는 신뢰 회복이 최우선 과제라고 강조했습니다. 이는 단순히 기능 추가 여부를 넘어, C++ 표준화 과정의 근본적인 합의 방식에 대한 재고를 요구하는 중대한 전환점이 될 수 있습니다.