C++

C++23 紹介

昨日の記事でC23を紹介しました。C++言語の言語仕様については、ISO/IEC 14882 で定められています。2020年版が最新です。Cと同じようにC++23と呼ばれる次期バージョンのリリースが近づいてきました。C++23について簡単に紹介します。

規格のバージョン

ISO/IEC 148829 は、何回か改訂されています。バージョンについてまとめます。

  • C++98 1998年に発行されました。C++として、最初に発行されたISO規格となります。
  • C++03 2003年に発行されました。誤記修正が中心で、言語仕様は、C++98と同じだと考えられています。
  • C++11 2011年に発行されました。型推論、範囲for文、ラムダ式、スマートポインタなど、現代的な言語仕様が数多く導入されました。
  • C++14 2014年に発行されました。C++11のマイナーバージョンアップ版と考えられています。C++11/C++14 を Modern C++ と呼び、区別する場合もあるようです。
  • C++17 2017 年に発行されました。これ以降は、仕様が完成したらリリースではなく、完成した仕様から順次リリースするように考え方が変わったようです(cpprefjp – C++日本語リファレンス の C++17 解説から)。
  • C++20 2020年に発行されました。比較的細かな言語仕様が追加された印象です。

__cplusplus の値

動作しているコンパイラがどのバージョンで動作しているかは、マクロ定数 __cpulsplus として定義されている long int の値を見れば分かります。

バージョン__cpulsplus の値
C++98/C++03199711L
C++11201103L
C++14201402L
C++17201703L
C++20202002L

C++23 の現在(2024年6月29日)

ISO/IEC 14882 のページによると、C++23の進捗は、50.00 です。FDIS(Final Draft Internationla Standard)が準備できているようです。

(C++24 ではなく)C++23と呼んでいるかというと、マクロ __cplusplus の値が、202302L になる予定だからです(事情はC23と同じです)。

C++23の変化点について、日本語で読める記事としては、cpprefjp – C++日本語リファレンスでまとめられています。このサイトの解説は、詳しくて助かっています。

最後に

C++は、C++11以降3年ごとに改訂されています。C++は文法仕様の量が多く、把握できていない仕様が多くあります。

記事を書くことによって理解を深めていきます。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA