関連サイト
本書の関連ページが用意されています。
内容紹介
◆最新規格に準拠したC++プログラムの書き方の王道を極める
効率性を柔軟性を兼ね備えたプログラミング言語として進化を続けるC++。本書は、次の規格として標準化が進められているC++20を意識しながら、現行の規格に準拠したC++プログラムの書き方を徹底的に解説していく。プログラミング経験者を主要な対象としているが、解説を進めるに当たっては、その時点で学習した知識だけを利用して新しい知識を学ぶ方法(知識のブートストラップ)が意識されており、プログラミング初心者であっても新しい機能、知識の理解を無理なく行えるようになっている。C++の実行、デバッグ、基本的な文法、アルゴリズム、オブジェクト指向、テンプレート、メモリ管理、乱数など、C++による本格的なプログラム開発に必須の知識を網羅した本格的な入門書である。
本書はプログラミングの経験はあるがC++は知らない読者を対象にしたC++を学ぶための本である。本書はすでに学んだことのみを使って次の知識を説明する手法で書かれた。C++コンパイラーをC++で書く場合、C++コンパイラーのソースコードをコンパイルする最初のC++コンパイラーをどうするかというブートストラップ問題がある。本書はいわばC++における知識のブートストラップを目指した本だ。これにより読者は本を先頭から読んでいけば、まだ学んでいない概念が突如として無説明のまま使われて混乱することなく読み進むことができるだろう。
C++知識のブートストラップを意識した入門書の執筆はなかなかに難しかった。ある機能Xを教えたいが、そのためには機能Yを知っていなければならず、機能Yを理解するためには機能Zの理解が必要といった具合に、C++の機能の依存関係の解決をしなければならなかったからだ。著者自身も苦しい思いをしながらできるだけ今までに説明した知識のみを使って次の知識を教えるように書き進めていった結果、意外な再発見をした。ポインターを教えた後はC++のほとんどの機能を教えることに苦労しなくなったのだ。けっきょくC++ではいまだにポインターの機能はさまざまな機能の土台になっているのだろう。
本書の執筆時点でC++は現在、C++20の規格制定に向けて大詰めを迎えている。C++20では#includeに変わるモジュール、軽量な実行媒体であるコルーチン、高級なassert機能としてのコントラクトに加え、とうとうコンセプトが入る。ライブラリとしてもコンセプトを活用したレンジ、span、flat_mapなどさまざまなライブラリが追加される。その詳細は、次に本を出す機会があるならば『江添亮の詳説C++17』と似たようなC++20の参考書を書くことになるだろう。C++はまだまだ時代に合わせて進化する言語だ。
(「序」より)
書誌情報
- 著者: 江添亮
- 発行日: 2019-09-20 (紙書籍版発行日: 2019-09-20)
- 最終更新日: 2019-09-20
- バージョン: 1.0.0
- ページ数: 703ページ(PDF版換算)
- 対応フォーマット: PDF, EPUB
- 出版社: アスキードワンゴ
対象読者
C++に興味のある人、C++入門者
著者について
江添亮
2010 年C++ 標準化委員会エキスパートメンバー
2014 年株式会社ドワンゴ入社
2015 年C++ 標準化委員会委員
Blog: http://cpplover.blogspot.jp/
GitHub: https://github.com/EzoeRyou/