C++標準ライブラリヘッダファイル
C++標準ライブラリのインタフェースは以下のヘッダファイル群により定義されます。
[編集]C 互換ヘッダ
<〜.h> 形式の C 標準ライブラリヘッダのいくつかは、それと同じ名前のヘッダと <c〜> 形式のヘッダの両方が C++ 標準ライブラリに含まれています (意味のある <c〜> 形式のヘッダはすべて上の一覧に挙げられています)。
<complex.h> を除いて 、 C++ 標準ライブラリに含まれている各々の <〜.h> 形式のヘッダは、対応する <c〜> ヘッダで std 名前空間に配置される各々の名前をグローバル名前空間に配置します。
これらのヘッダは、同じ名前を std 名前空間でも宣言するかもしれません。 また、対応する <c〜> ヘッダは、同じ名前をグローバル名前空間でも宣言するかもしれません。 例えば、 <cstdlib> をインクルードすると、 std::malloc は確実に提供されますが、さらに ::malloc も提供されるかもしれません。 <stdlib.h> をインクルードすると、 ::malloc は確実に提供されますが、さらに std::malloc も提供されるかもしれません。 これは C 標準ライブラリの一部ではない関数や関数オーバーロードに対しても適用されます。
<assert.h> (廃止予定) | <cassert> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います |
<ctype.h> (廃止予定) | <cctype> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います |
<errno.h> (廃止予定) | <cerrno> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います |
<fenv.h> (廃止予定) | <cfenv> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います |
<float.h> (廃止予定) | <cfloat> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います |
<inttypes.h> (廃止予定) | <cinttypes> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います |
<limits.h> (廃止予定) | <climits> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います |
<locale.h> (廃止予定) | <clocale> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います |
<math.h> (廃止予定) | 特殊な数学関数の名前を除いて、 <cmath> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います |
<setjmp.h> (廃止予定) | <csetjmp> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います |
<signal.h> (廃止予定) | <csignal> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います |
<stdarg.h> (廃止予定) | <cstdarg> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います |
<stddef.h> (廃止予定) | std::byte およびそれに関連する関数を除いて、 <cstddef> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います |
<stdint.h> (廃止予定) | <cstdint> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います |
<stdio.h> (廃止予定) | <cstdio> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います |
<stdlib.h> (廃止予定) | <cstdlib> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います |
<string.h> (廃止予定) | <cstring> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います |
<time.h> (廃止予定) | <ctime> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います |
<uchar.h> (廃止予定) | <cuchar> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います |
<wchar.h> (廃止予定) | <cwchar> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います |
<wctype.h> (廃止予定) | <cwctype> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います |
[編集]サポートされない C のヘッダ
C のヘッダ <stdatomic.h>
, <stdnoreturn.h>
, <threads.h>
は C++ に含まれておらず、対応する <c〜> もありません。
[編集]空の C のヘッダ
ヘッダ <complex.h>
, <ccomplex>
, <tgmath.h>
, <ctgmath>
は C 標準ライブラリ由来の内容を何も含んでおらず、代わりに C++ 標準ライブラリの他のヘッダをインクルードするだけのものになっています。 これらのヘッダの使用はすべて C++ では非推奨です。
<ccomplex> (C++11およびそれ以降)(deprecated in C++17) | ヘッダ <complex> をインクルードするだけです |
<complex.h> (廃止予定) | ヘッダ <complex> をインクルードするだけです |
<ctgmath> (C++11およびそれ以降)(deprecated in C++17) | ヘッダ <complex> および <cmath> をインクルードするだけです。 C のヘッダ <tgmath.h> の内容と同等なオーバーロードがこれらのヘッダによってすでに提供されています |
<tgmath.h> (廃止予定) | ヘッダ <ctgmath> をインクルードするだけです |
[編集]無意味な C のヘッダ
ヘッダ <ciso646>
, <cstdalign>
, <cstdbool>
は C++ では無意味です。 C でこれらのヘッダにより提供されるマクロは、 C++ では言語のキーワードです。
<ciso646> | 空のヘッダ。 C で <iso646.h> にあるマクロは C++ ではキーワードです |
<iso646.h> (廃止予定) | <ciso646> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います |
<cstdalign> (C++11およびそれ以降)(deprecated in C++17) | 互換マクロ定数を定義します |
<stdalign.h> (廃止予定) | <cstdalign> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います |
<cstdbool> (C++11およびそれ以降)(deprecated in C++17) | 互換マクロ定数を定義します |
<stdbool.h> (廃止予定) | <cstdbool> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います |
[編集]関連項目
C標準ライブラリヘッダファイル の C言語リファレンス |