C++1z C標準ライブラリの参照をC11に更新

C++14段階では、C++標準ライブラリはC99のC標準ライブラリを参照していました。C++1zでは、C11標準ライブラリを参照するようになります。C11標準ライブラリのすべての機能に対応するわけではありません。

  • <stdatomic.h>, <stdnoreturn.h>, <threads.h>に対応するC++ヘッダは用意しない
  • <cfloat>に以下のマクロを追加
    • DBL_HAS_SUBNORM, FLT_HAS_SUBNORM, LDBL_HAS_SUBNORM : 非正規化数 (subnormal number)の有無を判定
    • DBL_DECIMAL_DIG, FLT_DECIMAL_DIG, LDBL_DECIMAL_DIG : 10進の桁数
    • DBL_TRUE_MIN, FLT_TRUE_MIN, LDBL_TRUE_MIN : 正の最小値
  • <cassert>には、C11で追加されたstatic_assertマクロを含めない
  • <cstdlib>aligned_alloc()関数を追加
  • <ctime>に、TIME_UTCマクロ, timespec構造体, timespec_get()関数を追加
  • <cstdio>vfscanf()関数を追加
  • <ccomplex>, <cstdalign>, <cstdbool>, <ctgmath>を非推奨化

参照

お断り

この記事の内容は、C++1zが正式リリースされる際には変更される可能性があります。正式リリース後には、C++日本語リファレンスサイトcpprefjpの以下の階層の下に解説ページを用意する予定です。