2026년 10월 23일 ISO 국가 회원기관(NB) 투표에서 C++26이 부결됐습니다. 12주 투표 끝에 3분의 2 찬성을 넘지 못했습니다.
반대의 중심에는 Contracts가 있습니다. 여러 국가 회원기관이 이 기능을 표준에 넣고 출시할 준비가 아직 안 됐다고 판단했습니다.
C++26 초안에는 Contracts 말고도 여러 기능이 함께 들어 있습니다. 한 기능 때문에 표준 전체가 멈추면 나머지 기능도 같이 늦어집니다. 연내 확정은 어려워졌고, 다음 표준의 이름까지 불확실해졌습니다. 다음 회의는 11월 16일입니다.
DIS는 출판 직전 단계다
ISO 표준은 여러 단계를 거칩니다. DIS(국제표준안)는 출판 직전 단계로, 국가 회원기관이 승인·거부·기권 중 하나를 고르고 의견을 붙입니다. 승인에는 3분의 2 다수가 필요합니다.
1998년 이후 이 절차는 조용히 통과됐습니다. C++ 역사에서 DIS 투표가 부결된 것은 이번이 처음입니다. 글쓴이가 ISO 시스템에서 찾은 유일한 선례는 2006년 8월의 ISO/IEC DIS 26926 C++/CLI 언어 규격이고, 그 프로젝트는 중단됐습니다. 이 선례를 꺼낸 이유는 절차가 멈추면 되돌리는 비용이 크기 때문입니다.
글쓴이는 이번 투표가 형식적 통과일 것으로 예상했습니다. 1998년 이후 그래왔기 때문입니다. ISO 규칙상 일부 투표는 내부 사항이라 결과나 표 분포를 공개하지 못합니다. 어느 나라가 얼마나 반대했는지는 이 글에서 알 수 없습니다.
그래서 이번 부결은 기능 문제이자 절차 사고입니다. 기능 하나가 표준 전체를 멈춰 세웠습니다.
반대의 핵심은 Contracts
Contracts는 함수의 사전·사후 조건을 언어 차원에서 적는 기능입니다. 2019년 쾰른 회의에서 C++20에 들어갈 뻔했다가 같은 회의에서 빠졌고, 2020년부터 약 4년간 스터디그룹이 이 주제를 검토했습니다.
이후 진화 워킹그룹(EWG)에서 여러 회의를 거쳐 다수결로 C++26에 포함됐고, 2026년 3월 초안 투표에서도 큰 다수를 얻었습니다. 위원회 안에서는 이미 여러 번 승인된 기능입니다.
그런데 국가 회원기관 단계에서 반대가 3분의 1을 넘었습니다. 글쓴이는 새 논문이어도 옛 주장을 반복한 것이라면 새로운 정보로 보기 어렵다고 적었습니다. 표준화위원회의 관행은 새 정보나 절차 오류가 있을 때만 반대하는 것이었고, 이번에 그 관행이 깨졌다는 진단입니다.

남은 선택지는 넷, 모두 지연이다
- 수정한 초안으로 DIS 재투표
- 수정한 초안을 위원회 단계(CD)로 되돌리기
- 기술 명세(TS)로 발행
- 프로젝트 취소
재투표로 가려면 반대표를 던진 국가들이 입장을 바꿔야 합니다. 글쓴이는 Contracts를 빼지 않는 한 표가 바뀌기 어렵다고 봅니다.
넷 다 WG21의 다수를 다시 얻어야 합니다. 문제는 WG21이 Contracts를 포함한 C++26을 다음 단계로 넘기기로 이미 두 차례 다수결로 결정했다는 점입니다. 반대쪽도 상당한 시간을 들였기 때문에, Contracts를 빼지 않고서는 결과가 뒤집히기 어렵다고 글쓴이는 봅니다.
네 선택지의 공통점은 시간입니다. 어느 쪽이든 다음 표준 발행은 미뤄지고, 미뤄진 만큼 컴파일러 구현과 라이브러리 채택 일정도 같이 밀립니다. 표준을 기준으로 삼는 프로젝트는 어느 시점의 초안을 목표로 할지 다시 정해야 합니다.
취소하면 C++23에 머물고 다음은 C++29가 됩니다. 이미 C++26에 들어간 기능을 다시 제안서로 올려야 하고, 최소 한 명의 지지자가 필요합니다. 그 사람이 시간을 내지 못하면 기능이 빠질 수 있습니다. C++26이라는 이름이 유지된다는 보장도 없습니다.
신뢰가 흔들리면 절차가 멈춘다
글쓴이 Andreas Fertig는 독일 표를 대표하는 C++ 표준화위원이고, 글은 개인 견해입니다. 2019년 쾰른 회의에서 Contracts가 C++20에서 빠지던 자리와, C++26에 들어오던 자리를 모두 지켜본 사람입니다. 그가 짚은 핵심은 기술이 아니라 신뢰입니다. 그는 이번 부결을 거대한 재앙이라고 표현했습니다.
표준화위원회는 ISO 절차를 따르면서 자체 규칙도 씁니다. 새 정보가 나오면 의견을 다시 듣는다는 규칙이 대표적입니다. 이번에는 그 규칙과 국가 단위 투표가 충돌했습니다.
그는 표준이 절충의 집합이라고 적었습니다. 누구나 이기기도 지기도 하지만, 투표에서 진 쪽이 패배를 받아들이지 않으면 다음 단계로 갈 수 없습니다. 남은 문제는 기술이 아니라 신뢰 회복이라는 진단입니다.
그는 이번 부결로 협업의 신뢰가 흔들렸고, 앞으로 나아가려면 그 신뢰를 먼저 회복해야 한다고 적었습니다. C++29 작업을 계속할 이유가 지금은 없다고까지 갑니다. 표준 하나가 막히면 다음 표준을 준비하는 동력도 같이 약해진다는 뜻입니다.
11월 16일 회의의 최우선 과제는 교착 해소입니다. C++29 작업에도 영향이 생깁니다. 진행이 막히면 다음 표준을 준비할 이유 자체가 흐려지기 때문입니다.
원문 반응
GeekNews에 옮겨진 해커뉴스 댓글은 Contracts의 실효성부터 따졌습니다. 고신뢰성 C++ 코드를 쓰지만 표준화에는 관여하지 않는 입장에서, Contracts가 실제 코드베이스의 어떤 문제를 해결하는지 불분명하다는 반응이었습니다.
이번 사안에서 확인할 것은 세 가지입니다. 11월 16일 회의가 교착을 풀었는지, WG21이 Contracts를 유지한 채 재투표를 가는지, 아니면 기능을 빼고 초안을 다시 쓰는지입니다.
특히 C++20 Concepts가 나온 뒤에는 더 그렇고, 이미 신뢰성을 높이는 기법을 쓰고 있으면 이득을 정량화하기 어렵다는 지적입니다. 표준에 넣자는 쪽과 미루자는 쪽이 같은 기능을 두고 서로 다른 코드베이스를 보고 있다는 뜻입니다. 표준 논쟁이 현업 개발자에게는 먼 이야기로 들린다는 점도 드러납니다.

C++26은 올해 안에 확정되기 어렵고, 다음 회의에서도 결론이 나지 않을 수 있습니다. 새 표준을 기다리는 프로젝트라면 11월 16일 회의 결과와 WG21의 결정을 확인한 뒤 일정을 잡는 편이 안전합니다. 표준 이름과 발행 연도가 바뀔 수 있어, 문서에 C++26을 기준으로 적어 둔 부분은 다시 확인해야 합니다.
원문 보기 - C++26 DIS failed, how does C++ survive?
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.


