通信用語の基礎知識 IPv4
戻る
発見!イイお店

ISO/IEC 14882:2011

辞書:電算用語の基礎知識 プログラミング言語編 (PTPROGN)
読み:アイエスオウ・アイイースィー・いちよんはちはちに・にーゼロいちいち
外語:ISO/IEC 14882:2011 英語
品詞:固有名詞
2010/02/16 作成
2013/07/01 更新

ISO規格によるC++(ISO C++)であるISO/IEC 14882の第三版。俗に「C++11」と呼ばれる。仕様策定中は「C++0x」と呼ばれていた。

元々は2009(平成21)年までに標準化することを目標としていたため0xとした。しかし策定作業は紛糾・難航し、2009(平成21)年には間に合わなかった。それでも、仮称はそのまま維持された。

C++0xでは、Technical Report 1やBoost C++ライブラリに含まれている機能の導入が議論されていた。

コンセプト

  • C++98と、更に可能な限りCとも互換性を保持する
  • 型は、従来の危険な技術に換えて、新しい安全なものが提供される
  • ハードウェアの直接操作に関する機能の拡充
  • マルチスレッド
  • ジェネリックプログラミング
  • パフォーマンス向上と実戦向けの適切なソリューション提供
  • コア言語仕様の拡張のほかに、標準ライブラリの拡張にも重点が置かれている

拡張

主な拡張は次の通り(順不同)。

  • 新参照型「右辺値参照」(rvalue references)の追加。「型名 &&」として使う。
  • 関数や式などを定数として宣言するキーワードconstexprの追加
  • ラムダ関数およびラムダ式
  • ナルポインターを表わすキーワードnullptrの追加
  • long long int型の追加
  • 範囲コンセプトで、範囲指定ループが可能。例えば配列を自動的に全部参照するループが作れる
  • 外部テンプレートの宣言「extern template」を拡張
  • スコープ付きの強く型付けされた列挙型「enum class」(enum structも同義)を拡張
  • templateが、可変長引数に対応
  • Unicode文字を表現する'\u'の追加 (例: \u4e00)
  • 新しい文字列直定数に対応
    • u8/u/Uで、各々UTF-8UTF-16UTF-32
    • raw文字列直定数を導入。R"..."で、文字列中では\のエスケープは不要
  • ユーザー定義直定数
  • autoキーワードを「型類推」のためのものに仕様変更

新予約語

主な新しい予約語は次の通り。

仕様変更の予約語

仕様変更や拡張が予定されている、既存の予約語は次の通り。

  • auto (完全な仕様変更)
  • class (enum classなどの用途で使われる)
  • default (メンバー関数の定義にも使う)
  • delete (メンバー関数の定義にも使う)
  • explicit (コンストラクターだけでなく、関数も修飾する)
  • extern (extern templateとしての用途を追加)
  • inline (名前空間の修飾に使う)
  • mutable (ラムダ式の修飾にも使う)
  • operator (ユーザー定義直定数の定義に使う)
  • sizeof (可変長引数のtemplateの長さを得るために拡張)
  • using (templateの別名定義に使う)

TR1/Boostとの差

標準仕様との名前重複を避けるため、Technical Report 1(TR1)は名前空間にstd::tr1、Boostは名前空間にboostを使う。

C++11は、これらの機能を導入する際、名前空間はstdとする。

Microsoft Visual C++

Visual C++ 2010時点で、C++11の主要機能のうち「ラムダ式」「auto」「右辺値参照」「static_assert」「nullptr」「decltype」に対応している。

また、実装は完全ではないが、<unordered_map> <random> <tuple> <regex> などの新しいヘッダーが追加されている。

GCC

GCCでは、GCC 4.3からC++0x/C++11の対応を徐々に開始した。

GCC 4.8.x系列で、ほぼ全機能が実装されているようである。

clang/LLVM

clang/LLVM 2.9でC++0xに完全対応し、clang/LLVM 3.3でC++11の全機能に完全対応した。

用語の所属
プログラミング言語
C++
ISO/IEC 14882
関連する用語
標準C++ライブラリ

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.04a (27-May-2022)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club