C++0xとC++11の違いとは?標準規格の命名の経緯をわかりやすく解説
標準規格の名前は「発行年」に由来する
CおよびC++の標準規格は、通常、発行された年を冠した名前で呼ばれています。たとえばC++の場合、最初の標準規格は1998年に発行されたため「C++98」と呼ばれ、その最初の訂正版として2003年に発行されたものは「C++03」と呼ばれています。
この命名規則に従えば、規格の正式名称が確定するまでは、暫定的な呼び名で策定中の規格を指すことになります。「C++0x」はまさにその暫定名称だったのです。
なぜ「C++0x」という仮称が使われたのか
次期改訂版の規格は、2008年までに完成させる予定でした。しかし、策定スケジュールに不確定な要素が多かったため、発行年を確定させない「C++0x」という名称が採用されました。ここで「x」は「8」か「9」のいずれかを表す想定でした。
ところが、auto、ラムダ式、ムーブセマンティクス、スマートポインタなど、言語に大きな変革をもたらす新機能を盛り込むため、策定作業は予定より大幅に長引くことになりました。その結果、規格が最終的に確定したのは2011年となり、正式名称は「C++11」となったのです。
まとめ:C++0xとC++11は同じ規格を指す
つまり、「C++0x」は規格が発行される前に使われていた仮の名称(ワーキングネーム)であり、「C++11」は2011年に確定した正式な名称です。両者は本質的に同じ規格を指していますが、現在では「C++0x」という呼び方は策定中の草案や、その時代の技術記事・資料を指して使われることが多い点に注意しましょう。
-
DirectX11とDirectX12の違いを徹底解説!ゲーマーが知っておくべきポイント
DirectXは、ソフトウェアがマルチメディアコンテンツを描画し、グラフィックハードウェアと通信するために使用されるAPI(アプリケーションプログラミングインターフェース)のコレクションです。DirectXの主要な構成要素であるDirect3Dは、ソフトウェアとグラフィックスハードウェア間の通信を担っています。ハードウェアは製品ごとに異なるため、標準化された関数や呼び出しのライブラリを通じてグラフィックカードと通信することで、ゲーム開発を大幅にスピードアップできます。これは「ハードウェア抽象化」と呼ばれ、APIの最も重要な役割となっています。車に例えてみましょう。1台の車の運転ができれば、ほぼ
-
C#のintとInt32の違いとは?エイリアスの仕組みと使い分けを解説
C#では、32ビット整数を扱う方法として「int」と「Int32」の2つの記述があります。一見すると別々の型のように見えますが、実は本質的な違いはほとんどありません。intとInt32の基本的な関係Int32は.NETフレームワークが提供する構造体(System.Int32)であり、intはC#言語においてInt32に付けられたエイリアス(別名)です。Int32 x = 5;int x = 5;上記の2つの宣言は、どちらも同じ32ビット整数を保持します。コンパイルされた結果は完全に同一のコードになるため、実行時のパフォーマンスや動作に一切の違いはありません。唯一の小さな違いわずかな違いとして、