The C++ Programming Language

プログラミング言語C++は1998年に発行され2003年に改訂された国際標準ISO/IEC 14882を仕様として採用している。ISO/IEC 14882はC++の言語仕様と標準ライブラリの双方を規程しており、1998年に規程されたものは通称C++98、2003年に改訂されたものは通称C++03と呼ばれている。現在、JTC1/SC22/WG21 - The C++ Standards Committeeにおいて次期C++仕様"C++0x"の策定が進められている。最終的に12年ぶりに新しいC++が登場ということになりそうだ。

C++0xはC++98/03との互換性は確保しつつ、言語仕様と標準ライブラリの双方の規約を改訂するもので、新しい機能として並列プログラミングのサポートやプログラミングの簡素化、関数プログラミング機能の強化、ジェネリックプログラミングのアップデート、オプショナルガベージコレクタ機能の導入、新しい言語仕様の機能を活用した新しい標準ライブラリの策定が盛り込まれる見通しになっている。従来のC++との互換性を損なうことなく、より効率のいい開発ができるように拡張されるというわけだ。

Googleは10日(米国時間)、C++ Standards Meeting Finalizes Feature-Complete Draft Standardにおいて9月末にISO C++ Standards Committeeの会議を実施したことに触れ、C++0xがマイルストーンに達したことを説明している。同会議で長らく追加が期待されてきたユーザ定義リテラル、シンボル属性、Python風繰り返し構文、ライブラリスレッドセーフ、conceptsを伴うジェネリックプログラミングの改善などが採用される見通しとなり、ついにワーキングドラフトが公開されたからだ。

ワーキングドラフトはWorking Draft, Standard for Programming Language C++において公開されている。9月末の会議でおおよその機能は確定したため、ワーキングドラフトの内容がほぼ次世代C++の仕様になるとみておいてよさそうだ。今後は細かい修正が取り組まれることになるが、大幅な変更はなさそうだ。ISO C++ Standards Committeeは次世代C++仕様を2010年に正式公開する見通しを立てている。次世代C++仕様が12年ぶり登場することになりそうだ。