2012年以降、C++標準化委員会は3年ごとに新たなC++標準(C++14、C++17)をリリースしている。次のC++標準はC++20として作業が進められており、タイムスケジュールどおりのリリースが予定されている。C++98とC++11のリリースにはそれぞれ9年ほどの時間がかかったことを考えると、この7年間ですでに2つのC++標準が3年ごとにリリースされたのは大きな変化だ。

ISO C++標準化委員会の議長でありMicrosoftでソフトウェアアーキテクトを務めるHerb Sutter氏が2019年7月13日(米国時間)「Draft FAQ: Why does the C++ standard ship every three years? - Sutter's Mill」においてその理由を説明した。

  • Draft FAQ: Why does the C++ standard ship every three years? - Sutter's Mill

    Draft FAQ: Why does the C++ standard ship every three years? - Sutter's Mill

Sutter氏によれば、C++標準を作成するためのリリースエンジニアリングは当初は機能の策定を優先的に進め、固まった段階でリリースするモデルを採用していたという。この方法は機能的には優れた標準を作成することができるものの、いつリリースできるのか不明で、市場に不確実性をもたらすことになったと説明している。

標準化委員会はC++11をリリースした後にこのモデルを見直し、タイムスケジュールベースでリリースするモデルへ変更。Sutter氏は、機能ベースで進めるやり方とタイムスケジュールベースで進めるやり方を比較しつつ、結果的には、タイムスケジュールベースのほうが業界全体でよい効果を持つことがわかったと説明している。同氏は「機能ベースのリリースモデルには戻りたくない」と明言しており、現在のモデルの方がうまく機能していることを主張している。

次のC++標準となる「C++20」は2020年の公開が計画されている。これは「P1000R1: C++ IS schedule」で定められているためだが、そもそもなぜこのようなタイムベーススケジュールを厳密に進めることになったのか、その歴史的な経緯がまとめられている。

Herb Sutter氏はこのようなドキュメントを公開した理由として、3年ごとに新しい標準をリリースするに至った背景とその歴史を知らない関係者に情報共有を図るためだとしている。