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 標準ライブラリの一部ではない関数や関数オーバーロードに対しても適用されます。
(非推奨) |
<cassert> と同じに振る舞います |
(非推奨) |
<cctype> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います |
(非推奨) |
<cerrno> と同じに振る舞います |
(C++11)(非推奨) |
<cfenv> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います |
(非推奨) |
<cfloat> と同じに振る舞います |
(C++11)(非推奨) |
<cinttypes> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います |
(非推奨) |
<climits> と同じに振る舞います |
(非推奨) |
<clocale> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います |
(非推奨) |
<cmath> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います (数学の特殊関数の名前は除く) |
(非推奨) |
<csetjmp> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います |
(非推奨) |
<csignal> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います |
(非推奨) |
<cstdarg> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います |
(非推奨) |
<cstddef> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います (std::byte およびその関連関数の名前は除く)
|
(C++11)(非推奨) |
<cstdint> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います |
(非推奨) |
<cstdio> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います |
(非推奨) |
<cstdlib> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います |
(非推奨) |
<cstring> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います |
(非推奨) |
<ctime> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います |
(C++11)(非推奨) |
<cuchar> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います |
(非推奨) |
<cwchar> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います |
(非推奨) |
<cwctype> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います |
[編集] 空の C のヘッダ
ヘッダ <complex.h>
、 <ccomplex>
、 <tgmath.h>
、 <ctgmath>
は C 標準ライブラリ由来の内容を何も含んでおらず、代わりに C++ 標準ライブラリの他のヘッダをインクルードするだけのものになっています。 これらのヘッダの使用はすべて C++ では非推奨です。
(C++11)(C++17で非推奨)(C++20で削除) |
ヘッダ <complex> をインクルードするだけです |
(C++11)(非推奨) |
ヘッダ <complex> をインクルードするだけです |
(C++11)(C++17で非推奨)(C++20で削除) |
ヘッダ <complex> および <cmath> をインクルードするだけです。 C のヘッダ <tgmath.h> の内容と同等なオーバーロードがこれらのヘッダによってすでに提供されています
|
(C++11)(非推奨) |
ヘッダ <complex> および <cmath> をインクルードするだけです |
[編集] 無意味な C のヘッダ
ヘッダ <ciso646>
、 <cstdalign>
、 <cstdbool>
は C++ では無意味です。 C でこれらのヘッダにより提供されるマクロは、 C++ では言語のキーワードです。
(C++20で削除) |
空のヘッダ。 C の <iso646.h> のマクロは C++ ではキーワードです
|
(非推奨) |
効果を持ちません |
(C++11)(C++17で非推奨)(C++20で削除) |
互換マクロ定数をひとつ定義します |
(C++11)(非推奨) |
互換マクロ定数をひとつ定義します |
(C++11)(C++17で非推奨)(C++20で削除) |
互換マクロ定数をひとつ定義します |
(C++11)(非推奨) |
互換マクロ定数をひとつ定義します |
[編集] サポートされない C のヘッダ
C のヘッダ <stdatomic.h>
、 <stdnoreturn.h>
、 <threads.h>
は C++ に含まれておらず、対応する <c〜> もありません。
[編集] 実験的なライブラリ
C++ の技術報告書および技術仕様書もいくつかのヘッダを定義しています。
[編集] 関連項目
C標準ライブラリヘッダ の C言語リファレンス
|