C++26、ISO投票で否決の衝撃
原題: C++26 Disapproved
なぜ重要か
C++標準化史上初のDIS否決は、大規模ソフトウェア開発の安全性強化に向けたContractsの標準化に不透明感をもたらし、後続の標準策定プロセスにも影響する。
2026年10月23日、ISO国家機関(NB)によるC++26のDIS(国際規格案)投票の結果、承認に必要な3分の2の賛成票を得られず否決された。C++の歴史上、DIS投票が否決されたのは1998年の標準化開始以来初めてとみられる。否決の主因は「Contracts」機能の仕様が未成熟だという複数のNBからの指摘だ。
2026年10月23日、C++標準化委員会(WG21)にとって前例のない事態が発生した。ISO国家機関(NB)による12週間の投票期間を経て、C++26のDIS(Draft International Standard)が否決された。C++標準化の歴史において、DIS段階での否決は事実上初めてのことだ。過去にはC++/CLI言語仕様(ISO/IEC DIS 26926、2006年)が否決された記録があるが、同プロジェクトはその後凍結されており、先例として重い意味を持つ。
ブログ筆者のAndreas Fertig氏はWG21のメンバーとしてドイツ代表団の一員でもある。同氏によれば、否決の直接的な原因はContractsと呼ばれる言語機能だ。複数のNBが「この機能はリリース準備が整っていない」との立場をとり、Contractsを含まない形でC++26を承認するよう求めた。
Contractsをめぐる議論は長い経緯を持つ。2019年のCologneでの会議でC++20への組み込みが一時決定されたが、同会議中に撤回。その後2020年から約2024年にかけてStudy Groupが設置され、改めて仕様の検討が行われた。その成果を受けてEvolution Working Group(EWG)での審議が進み、WG21内では合意形成が図られてきた経緯がある。
Fertig氏は、今回の否決において「NBが新情報が提示された場合のみ反対票を投じる」という従来の慣行が守られなかった点を問題視する。「古い議論を新しい論文に載せ直しただけでは新情報ではない」と同氏は述べている。ISO規則上、投票結果の内訳を公開することは制限されているため、賛否の詳細な内訳は明らかにされていない。
DISはISO標準化プロセスの最終手前の段階であり、ここでの否決はC++26の公式発行スケジュールに直接的な影響を与える。次のステップとしては、WG21が修正を加えた上で再投票を求めるか、あるいは別の手続きを踏む必要がある。