サーチ…


前書き

1998年には、C ++を内部標準言語にする標準の最初の出版物がありました。その時から、C ++はC ++の異なる方言に発展しました。このページでは、以前のバージョンと比較して、すべての異なる標準の概要とその変更を見つけることができます。これらの機能の使い方の詳細は、より特殊なページで説明しています。

備考

C ++について言及すると、しばしば「標準」が参照されます。しかし、その基準は何ですか?

C ++には長い歴史があります。 Bell Labs内のBjarne Stroustrupによる小規模なプロジェクトとして開始され、90年代初めにはかなり普及しました。複数の企業がC ++コンパイラを作成していたため、ユーザは幅広いコンピュータでC ++コンパイラを実行することができました。しかし、これを容易にするために、これらの競合するすべてのコンパイラは、言語の単一の定義を共有する必要があります。

その時点で、C言語は正常に標準化されました。これは、言語の正式な記述が書かれたことを意味します。これは米国規格協会(ANSI)に提出され、審査のために文書を開き、その後1989年に出版した。1年後、国際標準化機構(異なる言語で異なる頭字語を使用するため、 、ISO、ギリシャ語のisosから派生した、等しいことを意味する。)は、国際標準として米国規格を採択した。

C ++では、当初から国際的に関心があったことは明らかでした。 ISO内のワークグループが開始されました(WG21と呼ばれ、SubCommittee 22内にあります)。このワークグループは、1995年頃に最初の標準を策定しました。しかし、私たちプログラマーが知っているように、計画されたデリバリーには最後の機能よりも危険は何もなく、C ++にも起こりました。 1995年に、STLという名前のクールな新しいライブラリが登場しました.WG21で働く人々は、C ++ドラフト標準にスリム化バージョンを追加することに決めました。当然ながら、これにより納期が逃したばかりで、3年後には最終的に文書が完成しました。 ISOは非常に正式な組織であるため、C ++標準にはあまり有名でないISO / IEC 14882の名前が付けられました。標準が更新されるにつれて、この正確なバージョンは14882:1998として知られていました。

実際、スタンダードを更新するという要求がありました。この標準は、C ++コンパイラの動作方法を正確に記述することを目的とした非常に厚いドキュメントです。わずかなあいまいさでも修正する価値があるので、2003年までに14882:2003としてアップデートがリリースされました。しかし、これはC ++に何の機能も追加しませんでした。新機能は2回目の更新予定です。

この2回目のアップデートは、C ++ 0xとして知られていました。なぜなら、2008年か2009年かが分かっていなかったからです。そのバージョンにも若干の遅延があり、14882:2011になりました。

幸いにも、WG21はそれを再び起こらせないことに決めました。 C ++ 11は好評を得て、C ++に新たな関心を寄せました。だから、勢いを維持するために、3回目の更新は計画から出版まで3年間で14882:2014になりました。

仕事はそこでも終わらなかった。 C ++ 17標準が提案され、C ++ 20の作業が開始されました。

現在の作業草案

公開されているすべてのISO規格は、ISO店( http://www.iso.org )から販売されています 。 C ++標準の作業草案は公然と無料で利用可能です。

異なるバージョンの標準:

C ++ 11

C ++ 11標準は、C ++標準の主な拡張です。以下は、isocppに関するグループ化され変更の概要と、より詳細なドキュメントへのリンクです。

言語拡張

一般的な機能

クラス

  • =デフォルトと=削除
  • デフォルトの移動とコピーの制御
  • コンストラクタの委譲
  • クラス内メンバ初期化子
  • 継承されたコンストラクタ
  • オーバーライドコントロール:オーバーライド
  • オーバーライドコントロール:final
  • 明示的変換演算子

その他のタイプ

  • enumクラス
  • long long - より長い整数
  • 拡張整数型
  • 一般化された組合
  • 一般化されたPOD

テンプレート

  • Externテンプレート
  • テンプレートエイリアス
  • バリデリックテンプレート
  • テンプレート引数としてのローカル型

並行性

その他の言語機能

ライブラリ拡張

一般

  • unique_ptr
  • shared_ptr
  • weak_ptr
  • ガベージコレクションABI
  • タプル
  • タイプ特性
  • 関数とバインド
  • 正規表現
  • タイムユーティリティ
  • 乱数生成
  • スコープ付きアロケータ

コンテナとアルゴリズム

  • アルゴリズムの改善
  • コンテナの改善
  • unordered_ *コンテナ
  • std :: array
  • forward_list

並行性

C ++ 14

C ++ 14標準は、しばしばC ++ 11のバグ修正と呼ばれます。これには、C ++ 11の新機能の拡張機能が最も多く含まれている変更点のリストのみが含まれています。以下は、isocppに関するグループ化され変更の概要と、より詳細なドキュメントへのリンクです。

言語拡張

ライブラリ拡張

廃止予定/削除済み

C ++ 17

C ++ 17標準は機能が完備されており、標準化のために提案されています。これらの機能を実験的にサポートしているコンパイラでは、通常C ++ 1zと呼ばれます。

言語拡張

ライブラリ拡張

C ++ 03

C ++ 03標準は、主にC ++ 98標準の欠陥報告に対処します。これらの欠陥とは別に、新しい機能が1つ追加されます。

言語拡張

C ++ 98

C ++ 98は、C ++の最初の標準化されたバージョンです。 Cの拡張として開発されたので、C ++からCを分離する多くの機能が追加されています。

言語拡張(C89 / C90に関して)

  • クラス、派生クラス、仮想メンバ関数、定数メンバ関数
  • 関数のオーバーロード、演算子のオーバーロード
  • 1行コメント(C言語でC99標準で導入されています)
  • 参考文献
  • 新規作成と削除
  • ブール型(C言語でC99標準で導入されています)
  • テンプレート
  • 名前空間
  • 例外
  • 特定のキャスト

ライブラリ拡張

  • 標準テンプレートライブラリ

C ++ 20

C ++ 20は、現在開発中のC ++ 17の標準であるC ++の今後の標準です。進歩は公式のISO cppウェブサイトで追跡することができます。

次の機能は、C ++標準の次期リリースで受け入れられたもので、2020年を対象としています。

言語拡張

現在、言語拡張は受け入れられていません。

ライブラリ拡張

ライブラリ拡張は現在受け入れられていません。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow