C++の生みの親:ビャーネ・ストロウストラップ(Bjarne Stroustrup)、『The C++ Programming Language』の著者でもある。彼がこの言語を設計・実装した目的は、UNIXカーネルサービスをマルチプロセッサとLANクラスタに分散させる課題を解決することだ。当時、イベント駆動シミュレーションを開発していた際、Simula言語は仕様に適していたがパフォーマンスが足りなかった。一方C言語は実行効率が高いものの、モジュール化や型チェック機能が弱かったため、彼はSimulaのクラス機構をC言語に追加するという考えを思いつき、クラス付きC「C with Classes」が誕生した。これがC++の前身である。
その後、この言語は複数の大型プロジェクトで活用され、リソース消費量が少なく実行効率に優れる点が実証された。だが当時は演算子オーバーロード、参照、仮想関数、テンプレート、例外処理など多くの機能が欠けていた。
当初は内部利用のみだったが、1983年7月、C++は初めて研究室を出て外部機関で使用されるようになった。
++はC言語のインクリメント演算子であり、C言語を発展・改良した言語であることを意味している。
C++11は開発フェーズにおけるコードネームがC++0xで、本講座はC++11を基盤としている。
C++を開発した最も核心的な目的は、同僚がアセンブラや純粋なC、当時流行していた各種高級言語を記述しなくても済むようにし、高品質なプログラムを作成する難易度を下げ、コーディング体験を向上させることだ。
C++言語の進化は、標準ライブラリのコアコンポーネント開発と並行して進められた。
C++年表
1979年:開発開始、当初の名称は「C with Classes」。クラス、コンストラクタ/デストラクタ、基礎的な並行処理ライブラリを実装
1984年:正式にC++へ改名。仮想関数、オーバーロード、参照、IOストリームライブラリを追加
1985年:初の商用版C++がリリース
1998年:初の国際規格C++98が正式に確定
2002年:新規格の開発を開始、コードネームC++0x
2003年:C++98の正誤版を発表。正規表現、ハッシュコンテナ、スマートポインタなどのライブラリ部品を追加
2009年:C++0xの機能が確定。ラムダ式、ムーブセマンティクス、マルチスレッド、統一初期化などの最新機能を搭載
2011年:新規格が正式にC++11と命名され、ISOにより承認
2012年:C++11に完全対応したコンパイラが登場。C++14、C++17の開発を開始
C++の生みの親
C++の生みの親はビャーネ・ストロウストラップ(Bjarne Stroustrup)。1955年生まれ、2022年にモルガン・スタンレーの専任職を定年退職したが、C++関連の活動は継続している。
