Modern C++編【導入】 第0章 はじめに

先頭へ戻る

このエントリーをはてなブックマークに追加

この章の概要

この章の概要です。

イントロダクション

「Modern C++(モダンC++)」は、2011年に策定された標準規格(C++11) 以降の C++ を指す通称です。 Modern C++ という名前のプログラミング言語が存在する訳ではありませんが、 旧来の C++ を解説した C++編との区別のために、この名称を使いました。
記事の中では、特に区別する必要が無い限り、C++ と表記します。

C++ は非常に強力な言語ですが、一方で、非常に難しい言語と言われています。 Modern C++ の時代になって多くの新機能が追加され、C++ はより強力かつ使いやすいものになった…とされていますが、 残念ながら言語はより巨大になってしまい、余程詳しい人で無い限り、理解・把握が困難なものになっています。 従来からの C++ を知っていると、単純に、新機能が便利で良いものに見えますが、 新規で C++ を始めようとする学習者にとっては、単に巨大で複雑な言語としか思えないかも知れません。

Modern C++ で追加された新機能の恩恵を受けるためには、 C++学習の早い段階で、便利な機能を知った方が良いと考えています。 そのためには、旧来の C++ のために構成した C++編の作りを見直す必要があると思い、 新たに構成し直した Modern C++編を作っていくことにしました。

準備

C++ の学習を始めるに当たり、コンパイラを準備する必要があります。 当サイトが対応しているコンパイラは、以下のものです。

  1. Microsoft VisualStudio Community 2017
  2. Xcode 8.3.3

なお、当サイトでは、VisualStudioシリーズを指して「VisualC++ XXXX」(XXXX は西暦年)という名称で統一しています。

また、これら以外の手段として、オンラインコンパイラを使う方法もあります。 これは、Webブラウザを通して、サービス提供者のサーバにあるコンパイラを使う方法で、 手元の PC に開発環境を構築しなくても、(ある程度の)プログラミングを行うことができます。 ただし、多少、出来ないことがあるかも知れませんから、その点はご了承下さい。
開発ツールの情報」のページに、 paiza.IO という Webサイトの情報を載せていますので、そちらを参照してみて下さい。
paiza.IO を使う場合、実際に動作しているコンパイラは clang 3.8 です(2017年7月2日現在)。


C++ には、2017年12月現在、C++98、C++03、C++11、C++14、C++17 と呼ばれている標準規格(数値はそれぞれ正暦年の下2桁の意味)があります。
当サイトの「Modern C++」は、C++11 以降のことを指しています。

Modern C++編では、C++11 をベースとしつつ、関連する C++14/17 での変更点を適宜取り上げていきます (C++14/17 の話題は分離したところに書くようにしています)。 ただし、規格にこだわるよりも、上記のコンパイラで動作することを重視しています。

方向性

Modern C++編では、C言語習得者で C++ は初めてという段階の人に向けて解説を行います。 当サイトとしては、C++ の学習より先にC言語を学習すべきであるという立場を取ります。
ですから、C言語の学習がまだであれば、先にC言語編をお読みください。

冒頭でも書きましたが、C++ は難しい言語です。 広く使われているプログラミング言語の中でも、トップクラスの難しさかも知れません。 ですから、当サイトの記事を読んだからと言って、すぐにでも C++ を使いこなせる訳ではありません。
とにかく多くのプログラムを読み、多くのプログラムを自分の手で書いて下さい。

解説されている範囲の内容に関して、どうしても理解できない場合は、 質問メールを送って下されば、可能な範囲でお答えします。 匿名で構いませんので、ky_webid@yahoo.co.jp までどうぞ。

本編の内容について

Modern C++編は、幾つかの分類ごとに、章立てを行っています。 ですから、言語解説編の第1章と、標準ライブラリ編の第1章とは別の章になっています。
1つの分類の中の章は、できるだけ、突然内容が飛躍するようなことが無いように考慮しているつもりですが、 明らかにそうなっていない箇所があれば、是非ご指摘下さい。

初めての方は、「言語解説編」の方から読み進めて下さい。 そこから適宜、「【標準ライブラリ】の○○章へ進んでください」といった指示があるので、 そのような場合に、「標準ライブラリ編」をお読み下さい。
また、「標準ライブラリ編」は、標準ライブラリの1つの機能ごとに章を分離するように構成していますから、 リファレンスのようにも使えるでしょう。


やや高度な内容や、細かい部分は、次のように破線で囲んでコラム的な扱いとしています。 この部分の説明については、難しければ読み飛ばしても構いません。

この部分に書かれている内容は、少し高度なものです。

本編で登場するサンプルプログラムや、その断片は、使えそうであれば、ご自分のプログラミング作業の中でそのまま使って頂いても構いません。 ただし、バグが無いことや、最良のプログラムであることを保証している訳ではありませんので、自己責任でお願いします。


参考リンク

更新履歴

'2017/12/5 C++17 が制定されたことに合わせて、文面を修正。

'2017/7/30 clang 3.7 (Xcode 7.3) を、Xcode 8.3.3 に置き換え。

'2017/7/2 新規作成。



次の章へ

Modern C++編のトップページへ

Programming Place Plus のトップページへ