はじめに | Programming Place Plus Modern C++編【導入】 第0章

トップページModern C++編 C++編](index.html)

Modern C++編は作りかけで、更新が停止しています。代わりに、C++14 をベースにして、その他の方針についても見直しを行った、新C++編を作成しています。
Modern C++編は削除される予定です。

この章の概要

この章の概要です。


イントロダクション

「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 Visual Studio Community 2017
  2. clang 5.0.0

なお、Visual Studio は、C言語の仕様上はまったく問題のないはずのソースコードに対して、警告やエラーを出すことがあります。これはセキュリティ上、危険な場合への対策を促すものですが、学習には少々邪魔になるかもしれません(もちろん、本格的なプログラムでは、危険性があるということは認識すべきです)。この辺りの詳細は、Visual Studio編C4996警告を参照してください。これ以外にも、Visual Studio に関する情報を Visual Studio編 でサポートしています。

これら以外の手段として、オンラインコンパイラを使う方法もあります。これは、Webブラウザを通して、サービス提供者のサーバにあるコンパイラを使う方法で、手元の PC に開発環境を構築しなくても、(ある程度の)プログラミングを行えます。ただし、多少、できないことがあるかもしれませんから、その点はご了承ください。

オンラインコンパイラについては、「paiza.IO について」のページに、paiza.IO という Webサイトの情報を載せていますので、そちらを参照してみてください。paiza.IO を使う場合、実際に動作しているコンパイラは clang 3.8 です(2017年6月5日現在)。

標準規格

C++ には、標準規格があります。2018年8月現在、C++98、C++03、C++11、C++14、C++17 という通称で呼ばれる5つの規格(数値はそれぞれ正暦年の下2桁の意味)があります。

C++03 は C++98 に対するマイナーバージョンアップ、C++14 は C++11 に対するマイナーバージョンアップという位置付けなので、大きな変化が起きたのは C++11、C++17 のタイミングです。また、今後も3年ごとにバージョンアップが行われることが決まっています。

当サイトでいう「Modern C++」とは、C++11 以降のことを指しています。

Modern C++編は、C++11 をベースとしています。

方向性

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

ですから、C言語の学習がまだであれば、先にC言語編をお読みください。

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

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

本編の内容について

Modern C++編は、いくつかの分類ごとに、章立てを行っています。ですから、言語解説編の第1章と、標準ライブラリ編の第1章とは別の章になっています。

1つの分類の中の章は、できるだけ、突然内容が飛躍するようなことがないように考慮しているつもりですが、明らかにそうなっていない箇所があれば、ぜひご指摘ください。

初めての方は、「言語解説編」の方から読み進めてください。そこから適宜、「【標準ライブラリ】の○○章へ進んでください」といった指示があるので、そのような場合に、「標準ライブラリ編」をお読みください。

また、「標準ライブラリ編」は、標準ライブラリの1つの機能ごとに章を分離するように構成していますから、リファレンスのようにも使えるでしょう。

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

この部分に書かれている内容は、本文の内容を補足するものです。

【上級】この部分に書かれている内容は、少し高度な話題です。

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


参考リンク


更新履歴

’2018/8/14 VisualStudio に関する情報を今後、専用のページでサポートするために文面の調整を行った。
標準規格に関する記述を「標準規格」の項に分離。

’2018/6/17 メールアドレスを変更。

’2018/4/2 「VisualC++」という表現を「VisualStudio」に統一。

’2018/1/5 Xcode 8.3.3 を clang 5.0.0 に置き換え。

’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 のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
X で ポストフォロー LINE で送る noteで書く
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー
先頭へ戻る