Skip to content

Latest commit

 

History

History
47 lines (23 loc) · 2.64 KB

000-preface.md

File metadata and controls

47 lines (23 loc) · 2.64 KB

この本はアスキードワンゴで紙書籍として出版される予定のC++17の新機能をほぼすべて解説している。本書に誤りを見つけたならば、Pull Requestを送る先はhttps://github.com/EzoeRyou/cpp17bookだ。

江添亮

C++の規格

プログラミング言語C++はISOの傘下で国際規格ISO/IEC 14882として制定されている。この規格は数年おきに改定されている。一般にC++の規格を参照するときは、規格が制定した西暦の下二桁をとって、C++98(1998年発行)とかC++11(2011年発行)と呼ばれている。現在発行されているC++の規格は以下の通り。

C++98

C++98は1998年に制定された最初のC++の規格である。本来ならば1994年か1995年には制定させる予定が大幅にずれて、1998年となった。

C++03

C++03はC++98の文面の曖昧な点を修正したマイナーアップデートとして2003年に制定された。新機能の追加はほとんどない。

C++11

C++11は制定途中のドラフト段階では元C++0xと呼ばれていた。これは、200x年までに規格が制定される予定だったからだ。予定は大幅に遅れ、ようやく規格が制定された時にはすでに2011年の年末になっていた。C++11ではとても多くの新機能が追加された。

C++14

C++14は2014年に制定された。C++11の文面の誤りを修正した他、すこし新機能が追加された。本書で解説する。

C++17

C++17は2017年に制定されることが予定されている最新のC++規格で、本書で解説する。

C++の将来の規格

C++20

C++20は2020年に制定されることが予定されている次のC++規格だ。この規格では、モジュール、コンセプト、レンジ、ネットワークに注力することが予定されている。

コア言語とライブラリ

C++の標準規格は、大きく分けて、Cプリプロセッサーとコア言語とライブラリからなる。

Cプリプロセッサーとは、C++がC言語から受け継いだ機能だ。ソースファイルをトークン列単位で分割して、トークン列の置換ができる。

コア言語とは、ソースファイルに書かれたトークン列の文法とその意味のことだ。

ライブラリとは、コア言語機能を使って実装されたもので、標準に提供されているものだ。標準ライブラリには、純粋にコア言語の機能のみで実装できるものと、それ以外の実装依存の方法やコンパイラーマジックが必要なものとがある。