C++ Standard Library headers
C++標準ライブラリのインターフェースは、以下のヘッダーの集合によって定義されています。
多目的ヘッダー |
||
| 汎用ユーティリティ: program control , dynamic memory allocation , random numbers , sort and search | ||
|
(C++17)
|
アルゴリズムの並列バージョン用の事前定義された実行ポリシー および実行制御コンポーネント (since C++26) | |
言語サポートライブラリ |
||
| 浮動小数点型の制限 | ||
| 整数型の制限 | ||
|
(C++20)
|
三方比較演算子 サポート | |
|
(C++26)
|
契約サポートライブラリ | |
|
(C++20)
|
コルーチンサポートライブラリ | |
| 実行コンテキストを保存(およびジャンプ)するマクロ(および関数) | ||
| シグナル管理のための関数とマクロ定数 | ||
| 可変長引数リストの処理 | ||
| 標準マクロと型定義 | ||
|
(C++11)
|
固定幅整数型 および 他の型の制限 | |
| 例外処理ユーティリティ | ||
|
(C++11)
|
std::initializer_list クラステンプレート | |
| 算術型のプロパティを問い合わせる | ||
| 低レベルメモリ管理ユーティリティ | ||
|
(C++20)
|
ソースコード位置を取得する手段を提供 source code location | |
|
(C++23)
|
固定幅浮動小数点型 | |
|
(C++11)
|
std::type_index | |
| 実行時型情報ユーティリティ | ||
|
(C++20)
|
ライブラリの実装状況を検証するためのマクロを提供する | |
Concepts ライブラリ |
||
|
(C++20)
|
基本ライブラリコンセプト | |
診断ライブラリ |
||
| 引数をゼロと比較する条件付きコンパイルマクロ | ||
| 最後のエラー番号を含むマクロ | ||
|
(C++26)
|
デバッグライブラリ | |
|
(C++23)
|
スタックトレース ライブラリ | |
| 標準例外型 | ||
|
(C++11)
|
std::error_code を定義する。プラットフォーム依存のエラーコード | |
メモリ管理ライブラリ |
||
| 高レベルメモリ管理ユーティリティ | ||
|
(C++17)
|
多相アロケータとメモリリソース | |
|
(C++11)
|
ネストされたアロケータクラス | |
メタプログラミングライブラリ |
||
|
(C++11)
|
コンパイル時有理数演算 | |
|
(C++11)
|
コンパイル時型情報ユーティリティ | |
汎用ユーティリティライブラリ |
||
|
(C++17)
|
std::any クラス | |
|
(C++20)
|
ビット操作 関数 | |
| std::bitset クラステンプレート | ||
|
(C++23)
|
std::expected クラステンプレート | |
| 関数オブジェクト、関数呼び出し、バインド操作および参照ラッパー | ||
|
(C++17)
|
std::optional クラステンプレート | |
|
(C++11)
|
std::tuple クラステンプレート | |
| 様々な ユーティリティコンポーネント | ||
|
(C++17)
|
std::variant クラステンプレート | |
コンテナライブラリ |
||
|
(C++11)
|
std::array コンテナ | |
| std::deque コンテナ | ||
|
(C++23)
|
std::flat_map および std::flat_multimap コンテナアダプタ | |
|
(C++23)
|
std::flat_set および std::flat_multiset コンテナアダプタ | |
|
(C++11)
|
std::forward_list コンテナ | |
|
(C++26)
|
std::hive コンテナ | |
|
(C++26)
|
std::inplace_vector コンテナ | |
| std::list コンテナ | ||
| std::map および std::multimap 連想コンテナ | ||
|
(C++23)
|
std::mdspan ビュー | |
| std::queue および std::priority_queue コンテナアダプタ | ||
| std::set および std::multiset 連想コンテナ | ||
|
(C++20)
|
std::span ビュー | |
| std::stack コンテナアダプタ | ||
|
(C++11)
|
std::unordered_map および std::unordered_multimap 非順序連想コンテナ | |
|
(C++11)
|
std::unordered_set および std::unordered_multiset 非順序連想コンテナ | |
| std::vector コンテナ | ||
イテレータライブラリ |
||
| 範囲イテレータ | ||
Rangesライブラリ |
||
|
(C++23)
|
std::generator クラステンプレート | |
|
(C++20)
|
範囲アクセス、プリミティブ、要件、ユーティリティおよびアダプタ | |
アルゴリズムライブラリ |
||
| 範囲を操作するアルゴリズム | ||
| 範囲内の値に対する数値演算 | ||
文字列ライブラリ |
||
| 様々な ナロウ文字列処理関数 | ||
| std::basic_string クラステンプレート | ||
|
(C++17)
|
std::basic_string_view クラステンプレート | |
テキスト処理ライブラリ |
||
| ナローマルチバイト文字のカテゴリを判定する関数 | ||
|
(C++17)
|
std::to_chars および std::from_chars | |
| C ロケールユーティリティ | ||
|
(C++11)
(C++17で非推奨)
(C++26で削除)
|
Unicode変換機能 | |
|
(C++11)
|
Cスタイル Unicode文字変換関数 | |
| 様々な ワイド および マルチバイト 文字列処理関数 | ||
| ワイド文字のカテゴリを判定する関数 | ||
|
(C++20)
|
フォーマットライブラリ を含む std::format | |
| ローカライゼーションユーティリティ | ||
|
(C++11)
|
正規表現処理をサポートするクラス、アルゴリズム、イテレータ | |
|
(C++26)
|
テキストエンコーディング識別 | |
数値演算ライブラリ |
||
|
(C++11)
|
浮動小数点環境 アクセス関数 | |
| 一般的な数学関数 | ||
| 複素数型 | ||
|
(C++26)
|
基本線形代数アルゴリズム (BLAS) | |
|
(C++20)
|
数学定数 | |
|
(C++11)
|
乱数生成器と分布 | |
|
(C++26)
|
データ並列型とこれらの型に対する操作 | |
| 値の配列を表現および操作するためのクラス | ||
時間ライブラリ |
||
|
(C++11)
|
C++ 時間ユーティリティ | |
| Cスタイルの時間/日付ユーティリティ | ||
入出力ライブラリ |
||
|
(C++11)
|
フォーマットマクロ
、
intmax_t
および
uintmax_t
の数学演算と変換
|
|
| Cスタイル入出力関数 | ||
|
(C++17)
|
std::filesystem::path クラスおよび サポート関数 | |
| std::basic_fstream , std::basic_ifstream , std::basic_ofstream クラステンプレートとtypedef | ||
| 入出力のフォーマットを制御するためのヘルパー関数 | ||
| std::ios_base クラス、 std::basic_ios クラステンプレートおよびtypedef | ||
| 入出力ライブラリの全クラスの前方宣言 | ||
| いくつかの標準ストリームオブジェクト | ||
| std::basic_istream クラステンプレートとtypedef | ||
| std::basic_ostream , std::basic_iostream クラステンプレートとtypedef | ||
|
(C++23)
|
std::printを含む std::print フォーマット出力ライブラリ | |
|
(C++23)
|
std::basic_spanstream , std::basic_ispanstream , std::basic_ospanstream クラステンプレートとtypedef | |
| std::basic_stringstream , std::basic_istringstream , std::basic_ostringstream クラステンプレートとtypedef | ||
| std::basic_streambuf クラステンプレート | ||
|
(C++98で非推奨)
(C++26で削除)
|
std::strstream , std::istrstream , std::ostrstream | |
|
(C++20)
|
std::basic_osyncstream , std::basic_syncbuf およびtypedef | |
並行性サポートライブラリ |
||
|
(C++11)
|
アトミック操作ライブラリ | |
|
(C++20)
|
バリア | |
|
(C++11)
|
スレッド待機条件 | |
|
(C++11)
|
非同期計算のためのプリミティブ | |
|
(C++26)
|
ハザードポインタ | |
|
(C++20)
|
ラッチ | |
|
(C++11)
|
相互排他プリミティブ | |
|
(C++26)
|
リードコピーアップデート機構 | |
|
(C++20)
|
セマフォ | |
|
(C++14)
|
共有相互排他プリミティブ | |
|
(C++20)
|
std::jthread のためのストップトークン | |
|
(C++11)
|
std::thread クラスおよび サポート関数 | |
C互換性ヘッダー
C標準ライブラリヘッダーの一部(形式
xxx
.h
)について、C++標準ライブラリは同名のヘッダーと、別の形式
c
xxx
のヘッダーの両方を提供しています(意味のある
c
xxx
ヘッダーは全て上記に列挙されています)。形式
xxx
.h
のヘッダーは相互運用性のためだけに使用することが意図されています。C++ソースファイルが有効なISO Cであるためにこれらのヘッダーのいずれかを含める必要がある場合があります。有効なISO Cであることを意図していないソースファイルは、いずれのCヘッダーも使用すべきではありません。
complex.h
を除き、C++標準ライブラリに含まれる各
xxx
.h
ヘッダーは、対応する
c
xxx
ヘッダーが
std
名前空間に配置するはずの各名前をグローバル名前空間に配置します。
これらのヘッダーは同じ名前を
std
名前空間で宣言することも許可され、対応する
c
xxx
ヘッダーは同じ名前をグローバル名前空間で宣言することも許可されます:
<cstdlib>
を含めることは確実に
std::malloc
を提供し、
::
malloc
も提供する可能性があります。
<stdlib.h>
を含めることは確実に
::
malloc
を提供し、
std::malloc
も提供する可能性があります。これはC標準ライブラリに属さない関数や関数オーバーロードにも適用されます。
注意:
xxx
.h
ヘッダーはC++98では非推奨とされ、C++23で非推奨解除されました。これらのヘッダーは純粋な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互換性ヘッダー
ヘッダ
<stdatomic.h>
、
<stdbit.h>
、および
<stdckdint.h>
は、C標準ライブラリでも提供されている名前を宣言します。ヘッダ
<stdatomic.h>
はまた、Cにおける
_Atomic
キーワードであるマクロも定義します。他の
<
xxx
.h>
ヘッダとは異なり、対応する
<cstdatomic>
、
<cstdbit>
、および
<cstdckdint>
は提供されていません。
|
(C++23)
|
_Atomic
を定義し、C標準ライブラリの対応するコンポーネントを提供する
|
|
(C++26)
|
C標準ライブラリの対応するコンポーネントを提供する |
|
(C++26)
|
C標準ライブラリの対応するコンポーネントを提供する |
空のCヘッダー
ヘッダー <complex.h> 、 <ccomplex> 、 <tgmath.h> 、および <ctgmath> は、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ヘッダー
C++では、これらのヘッダー <ciso646> 、 <cstdalign> 、および <cstdbool> は無意味です。なぜなら、Cで提供されるマクロはC++では言語キーワードであるためです。
|
(C++20で削除)
|
空のヘッダー。
Cの
iso646.h
に含まれるマクロは
、
C++ではキーワード
|
|
(C++11)
(C++17で非推奨)
(C++20で削除)
|
互換性マクロ定数
__alignas_is_defined
および
__alignof_is_defined
を定義
|
|
(C++11)
(C++17で非推奨)
(C++20で削除)
|
互換性マクロ定数
__bool_true_false_are_defined
を定義
|
| 効果なし | |
|
(C++11)
|
互換性マクロ定数
__alignas_is_defined
および
__alignof_is_defined
を定義
|
|
(C++11)
|
互換性マクロ定数
__bool_true_false_are_defined
を定義
|
サポートされていないCヘッダー
Cヘッダー
<stdatomic.h>
,
(C++23まで)
<stdnoreturn.h>
および
<threads.h>
はC++には含まれておらず、
c
xxx
相当のものも存在しません。
実験的ライブラリ
C++ TR's/TS's はいくつかのヘッダーコレクションも定義しています。
関連項目
|
C documentation
for
Standard Library headers
|
|
C documentation
for
Standard Library headers
|