C ++ 0xとC ++ 11の違いは何ですか?


82

ここSOでは、これら2つの用語が混在して使用されています。

ウィキペディアは言う

C ++ 11、以前はC ++ 0xとしても知られていました...

でも理由はわかりません。

  • なぜ最初にC ++ 0xと呼ばれ、次にC ++ 11と呼ばれたのですか?
  • また、xは何の略ですか?私の推測-変数のように?

2
ゼロは、仕様の作成者が過度に楽観的だったことを意味します(プログラマーは常にそのようではありませんか?)
Sergey Kalinichenko 2012年

2
C ++ 0xは非常に楽観的な名前でした。それをDukeNukem、erm、C ++ 4everと呼ぶ方が現実的だったでしょう。
fredoverflow 2013

6
ゼロと楽観主義の関係が何なのかわかりません。
ルネNyffenegger

5
@RenéNyffeneggerゼロは楽観主義を表しています。なぜなら、標準は2000年代の10年間に完成し、C ++ 08またはC ++ 09と呼ばれると人々が考えていたからです。実際には、2011
Brennan Vincent

2
はい、わかりました。私はいつも0x、16進リテラルを導入することを意図していると思っていました。
ルネNyffenegger

回答:


96

C ++およびC標準は通常、公開された年にちなんで名付けられているため、覚えやすくなっています。

たとえば、C ++では、元の標準が1998年に公開されたため、C ++ 98について説明し、2003年に公開された最初の修正を参照すると、C ++ 03について説明します。

次の標準は2008年に行われると言われていましたが、不確実であったため、C ++ 0xと呼ばxれ、8または9のいずれかを表しました。実際には、ご存知のとおり、計画は変更されました。そのため、最終的にC ++ 11になります。

それでも、次のバージョン(C ++ 1x)では、Bjarne Stroustrupが5年以内(つまり2016年頃)にそれを実行する意向を表明しました。今のところ、コア言語(コンセプト、モジュール、ガベージコレクション)に変更が加えられており、ライブラリ(ファイルシステムなど)の拡張に重点が置かれているようですが、まだ早いので誰もが知っています!


2
コンセプト、ガベージコレクション、モジュールなど、次の標準に押し進められた多くのことがありました...(ガベージコレクションはおそらく準備ができていることに最も近いです。そしてモジュールはまだかなりの作業が必要です。)
James Kanze 2012年

@JamesKanze:ガベージコレクションのことを聞いたことがなく、モジュールを忘れていました(ありがとう)。モジュールは実際にはそれ自体で非常に簡単です(多くの言語にはすでにモジュールがあります)。実際の問題はモジュールと実際のヘッダーシステムをまとまりのある全体にブリッジすることであり、依存関係を待つ必要がないことをDougGregorが言ったことを覚えています。移行する前に移行してください。DougはモジュールをClangに統合することに一生懸命取り組んできましたが、CLang3.1のラムダを磨くために少しポーズをとったようです。
Matthieu M.

14
未来からのメッセージ、C ++ 14とC ++ 17
Karolis Ryselis 2018年

29

C ++ 0xは、リリース/ファイナライズされる前の標準の名前でした。(2011年に)完成すると、適切な名前を付けることができました。つまり、C ++ 11です。


3
また、Bjarneの「「x」は16進数です」というquipによると、C ++ 0Bである可能性もあります。:P
Jon Purdy 2012年

@JonPurdy当初の目標は、2009年までに最終基準を出すことでした。Bjarneは、xが16進数であるというコメントをしましたが、それを実現するつもりはないことが明らかになりました。(彼は皮肉なことにそれを意味したかもしれません。私にはわかりません。)
James Kanze 2012年

5
@JamesKanze:そうですね。それは冗談だ。標準的な委員会は気分を明るくするために何かをしなければなりません。
Jon Purdy 2012年

4

規格はでリリース/承認される予定でしたが200x、実際にはで承認されたため2011です。


4

新しい規格の作業が始まったとき、1998年頃、誰もそれがどの年に完成するかを知りませんでした。したがって、「x」は未知の年を意味し、10年かそこら以内に完成することを期待しています。

最終的には2011年に完成したため、この標準は口語的にはC ++ 11として、正式にはISO / IEC 14882:2011として知られています。

その基準が公式になったので、次の作業が続けられています。繰り返しになりますが、それがいつ行われるかは誰にもわかりませんが、10年以内に完了することが期待されているため、口語的にはC ++ 1xとして知られています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.