Introduction

これはなんですか

この文書は、とても丁寧にC++17に入門するための、C++17の入門書/解説書です。
今の時代、C++を入門するのであればC++03時代の記述法ではなく、最新のC++17準拠の記述法から入門すべきだと考え、書かれた一冊です。

導入

さて、21世紀の先進国主要において人類はコンピュータなしの生活を送る事は、もはや出来ません。一昔前までの、巨大なスーパーコンピューターと同性能を誇るスマートフォンは、お金さえ払えば、誰もが容易に手にする事ができます。そういったモダンなデバイスの進化に伴って、インターネットや無線データ送受信技術が充実し、あらゆるコンテンツをデータ化する事で、誰もが容易に意思や情報などを共有する事ができるようになりました。 その全てのデジタルコンテンツは、人類の生み出したプログラムから成り立っており、それを学ぶという事は、世の中の多くの仕組みを理解するための、とても有効的な手段になるのです。

今後の国内のIT人材不足や、世界各国のIT教育を推進する姿勢、また現実的に必須となってくる最低限の技術レベルの上昇などから、2020年で小学校でのプログラミング教育を必修化するといった検討内容が発案されており、プログラミングを学ぶ事への重要度は日に日に増しています。

そんな中、何故今、数あるプログラミング言語の中でもC++という言語を学ぶのでしょうか。
それは、プログラミングを習得する中で、とても重要で基本的な概念が、たくさん含まれているからです。組み込み単位の低水準なコードを書く事もできますし、ジェネリックプログラミングなどといった分野は、2015年以降にリリースされた新しいプログラミング言語にも参照された内容です。また関数型言語的な思考回路も同時に身につける事ができます。そして、C++プログラマ/エンジニアの需要は、まだ高いものがあります。

そんな、プログラミング言語 C++を、本書で探索/習得する事ができます。とは言っても、そんなに気合を入れて読んで頂かなくても構わないように、丁寧に、簡潔にを心がけて本書を執筆しました。
また、著者もこれを読むあなたと同じように、参考書を広げながらC++言語を独学で学んだ一人です。当初を振り返った時、こういった説明/解説があれば、もっと分かりやすかったなと思う内容を、極力入れ込むようにしました。

本書が少しでもモダンなC++プログラミングの理解の助けとなれるよう、願っております。

著者 五味拓樹/Roki

対象読者

本書は読者に対して下記内容以外の最低限の知識等の要求をしていません。

  • 執筆時最新のC++プログラミングを学びたい者で、ソフトウェアのインストールができる事

開発環境について

本書では主に下記環境にてコンパイルの確認をしています。

OS
  • Windows 7,Windows 8,Windows 10
  • Mac OS X 10.11.2,Mac OS Sierra 10.12.1
  • Debian 8.0 GNU Linux
  • Ubuntu 16.04 LTS GNU Linux,Ubuntu 16.10 GNU Linux
  • Fedora 24
コンパイラ
  • GNU C++ Compiler 6.1.0 / 7.0.1,Cygwin
  • LLVM Clang HEAD 4.0.0