C++標準ライブラリ ヘッダー
C++標準ライブラリのインターフェースは、以下のヘッダーのコレクションによって定義されます。
多目的ヘッダー | ||
| 汎用ユーティリティ:プログラム制御、動的メモリ確保、乱数、ソートと検索 | ||
| (C++17) |
アルゴリズムの並列版のための事前定義された実行ポリシーと実行制御コンポーネント(C++26以降) | |
言語サポートライブラリ | ||
| 浮動小数点型の限界値 | ||
| 整数型の限界値 | ||
| (C++20) |
三方比較演算子のサポート | |
| (C++26) |
契約(Contracts)サポートライブラリ | |
| (C++20) |
コルーチンサポートライブラリ | |
| 実行コンテキストを保存(およびジャンプ)するマクロ(および関数) | ||
| シグナル管理のための関数とマクロ定数 | ||
| 可変長引数リストの処理 | ||
| 標準マクロとtypedef | ||
| (C++11) |
固定幅整数型とその他の型の限界値 | |
| 例外処理ユーティリティ | ||
| (C++11) |
std::initializer_list クラステンプレート | |
| 算術型のプロパティを問い合わせる | ||
| 低レベルメモリ管理ユーティリティ | ||
| (C++20) |
ソースコードの位置情報を取得する手段を提供 | |
| (C++23) |
固定幅浮動小数点型 | |
| (C++11) |
std::type_index | |
| 実行時型情報ユーティリティ | ||
| (C++20) |
ライブラリの実装状況を確認するためのマクロを提供 | |
コンセプトライブラリ | ||
| (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 を含む書式付き出力ライブラリ | |
| (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) |
Read-copy update (RCU) メカニズム | |
| (C++20) |
セマフォ | |
| (C++14) |
共有相互排他プリミティブ | |
| (C++20) |
std::jthread のためのストップトークン | |
| (C++11) |
std::thread クラスとサポート関数 | |
[編集] C互換ヘッダー
xxx.h という形式のいくつかのC標準ライブラリヘッダーについて、C++標準ライブラリは同名のヘッダーとcxxxという形式の別のヘッダーの両方を含みます(意味のあるcxxxヘッダーはすべて上にリストされています)。xxx.h形式のヘッダーの意図された使用法は、相互運用性のためだけです。C++ソースファイルが有効なISO Cであるために、これらのヘッダーの1つをインクルードする必要があるかもしれません。有効なISO Cであることも意図していないソースファイルは、Cヘッダーを使用すべきではありません。
complex.hを除き、C++標準ライブラリに含まれる各xxx.hヘッダーは、対応するcxxxヘッダーがstd名前空間に配置する各名前をグローバル名前空間に配置します。
これらのヘッダーは、同じ名前をstd名前空間で宣言することも許可されており、対応するcxxxヘッダーは同じ名前をグローバル名前空間で宣言することも許可されています。例えば、<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>は、C標準ライブラリでも提供されている名前を宣言し、Cではキーワードである_Atomicマクロを定義します。他のxxx.hヘッダーとは異なり、対応する<cstdatomic>は提供されません。
| (C++23) |
_Atomicを定義し、C標準ライブラリ内の対応するコンポーネントを提供します |
| このセクションは未完成です 理由: C++26の<stdbit.h>と<stdckdint.h>、およびC29の<stdmchar.h>を追加するため。 |
[編集] 空の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ヘッダー
ヘッダー<ciso646>、<cstdalign>、<cstdbool>は、Cで提供されるマクロがC++では言語キーワードであるため、C++では無意味です。
| (C++20で削除) |
空のヘッダー。Cのiso646.hに現れるマクロは、C++ではキーワードです |
| (C++11)(C++17で非推奨)(C++20で削除) |
1つの互換性マクロ定数を定義します |
| (C++11)(C++17で非推奨)(C++20で削除) |
1つの互換性マクロ定数を定義します |
| 効果はありません | |
| (C++11) |
1つの互換性マクロ定数を定義します |
| (C++11) |
1つの互換性マクロ定数を定義します |
[編集] サポートされないCヘッダー
Cヘッダーの<stdatomic.h>、(C++23まで) <stdnoreturn.h>、<threads.h>はC++には含まれておらず、cxxx相当のものもありません。
[編集] 実験的ライブラリ
C++ TR/TSもいくつかのヘッダーのコレクションを定義しています。
[編集] 関連項目
| C ドキュメント(C標準ライブラリヘッダー)
|