C++とは#
C++は、C言語をベースにしたコンパイル型のプログラミング言語です。
コンパイル型言語とは、ソースコードをコンパイルして実行可能なファイルに変換する必要がある言語のことです。
C++言語はC言語の機能を拡張したもので、CのプログラムをそのままC++で実行することもできます。
C++の特徴#
C++は、C言語と同じく、高速で効率的なプログラムを書くことができます。また、C++のプログラムは、コンパイル型言語なので、実行速度が速いです。
C++は、オブジェクト指向プログラミングを行うことができ、非常に柔軟です。C++11の機能以降、非常に高度なAPIを使用することができ、最近のC++では他のスクリプト言語のような使い勝手の良い機能が提供されています。
C++はCのリソースを使用できます。Unix系のOSにおいて、基底となるC言語のライブラリを使用することができます。また、C言語の機能は後方互換性があるので、C言語のプログラムをそのままC++で実行することもできます。
C++のバージョン#
C++には、バージョンがあります。一定期間ごとに大幅なアップデートがあり、新しい機能が追加されています。
C++は、ISO/IEC 標準規格化されています。
C++11#
C++11以降では、C++の機能に加えて、非常に高度な機能が提供されています。C++11以前のバージョンでは、C++の機能が非常に限られています。
C++14#
リテラル表現やunique_ptrなどの機能が追加されています。
C++17#
制御構文に新たな機能が追加されているため、これらを使用したい場合はC++17以降を使用する必要があります。
C++20#
一貫比較や指示付き初期化などの多くの機能が追加されています。
また、"モジュール"という機能が実装されています。
C++のコンパイラ#
C++のコンパイラにはg++やclangなどがあります。
このチュートリアルでは、g++を使用してC++のプログラムをコンパイルします。
C++のビルド環境 (CMake)#
gccを使用していくうちに引数が多くなってきます。そのため、CMakeを使用してビルド環境を構築します。
CMakeを使用することで、C++のプログラムをコンパイルするための設定ファイルを作成することができます。
OpenCVやROSなどのライブラリを使用する場合は、CMakeを使用してビルド環境を構築することが多いです。