Namespaces
Variants

C++ Standard Library headers

From cppreference.net
Standard library headers

C++標準ライブラリのインターフェースは、以下のヘッダーの集合によって定義されています。

HTMLタグ、属性、および` `、`(C++11)`などのC++固有の用語は翻訳せず、元のフォーマットを保持しています。「Mutual exclusion primitives」のみを「相互排他プリミティブ」に正確に翻訳しました。 翻訳内容: - "Read-copy update mechanisms" → "リードコピーアップデート機構" - HTMLタグ、属性、` `タグ内のテキスト、C++26の表記はそのまま保持 - C++専門用語(RCU)は翻訳せず、技術的に正確な表現を使用

目次

多目的ヘッダー

汎用ユーティリティ: program control , dynamic memory allocation , random numbers , sort and search
アルゴリズムの並列バージョン用の事前定義された実行ポリシー および実行制御コンポーネント (since C++26)

言語サポートライブラリ

浮動小数点型の制限
整数型の制限
(C++20)
三方比較演算子 サポート
契約サポートライブラリ
コルーチンサポートライブラリ
実行コンテキストを保存(およびジャンプ)するマクロ(および関数)
シグナル管理のための関数とマクロ定数
可変長引数リストの処理
標準マクロと型定義
(C++11)
固定幅整数型 および 他の型の制限
例外処理ユーティリティ
std::initializer_list クラステンプレート
算術型のプロパティを問い合わせる
低レベルメモリ管理ユーティリティ
ソースコード位置を取得する手段を提供 source code location
(C++23)
固定幅浮動小数点型
std::type_index
実行時型情報ユーティリティ
(C++20)
ライブラリの実装状況を検証するためのマクロを提供する

Concepts ライブラリ

(C++20)
基本ライブラリコンセプト

診断ライブラリ

引数をゼロと比較する条件付きコンパイルマクロ
最後のエラー番号を含むマクロ
デバッグライブラリ
スタックトレース ライブラリ
標準例外型
std::error_code を定義する。プラットフォーム依存のエラーコード

メモリ管理ライブラリ

高レベルメモリ管理ユーティリティ
多相アロケータとメモリリソース
ネストされたアロケータクラス

メタプログラミングライブラリ

(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 コンテナアダプタ
std::forward_list コンテナ
(C++26)
std::hive コンテナ
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 コンテナアダプタ
std::unordered_map および std::unordered_multimap 非順序連想コンテナ
std::unordered_set および std::unordered_multiset 非順序連想コンテナ
std::vector コンテナ

イテレータライブラリ

範囲イテレータ

Rangesライブラリ

std::generator クラステンプレート
(C++20)
範囲アクセス、プリミティブ、要件、ユーティリティおよびアダプタ

アルゴリズムライブラリ

範囲を操作するアルゴリズム
範囲内の値に対する数値演算

文字列ライブラリ

様々な ナロウ文字列処理関数
std::basic_string クラステンプレート
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++11)
浮動小数点環境 アクセス関数
一般的な数学関数
複素数型
(C++26)
基本線形代数アルゴリズム (BLAS)
(C++20)
数学定数
(C++11)
乱数生成器と分布
(C++26)
データ並列型とこれらの型に対する操作
値の配列を表現および操作するためのクラス

時間ライブラリ

(C++11)
C++ 時間ユーティリティ
Cスタイルの時間/日付ユーティリティ

入出力ライブラリ

フォーマットマクロ intmax_t および uintmax_t の数学演算と変換
Cスタイル入出力関数
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 フォーマット出力ライブラリ
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
std::basic_osyncstream , std::basic_syncbuf およびtypedef

並行性サポートライブラリ

(C++11)
アトミック操作ライブラリ
(C++20)
バリア
スレッド待機条件
(C++11)
非同期計算のためのプリミティブ
ハザードポインタ
(C++20)
ラッチ
(C++11)
相互排他プリミティブ
(C++26)
リードコピーアップデート機構
セマフォ
共有相互排他プリミティブ
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> と同じ動作をする
<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> は提供されていません。

_Atomic を定義し、C標準ライブラリの対応するコンポーネントを提供する
(C++26)
C標準ライブラリの対応するコンポーネントを提供する
C標準ライブラリの対応するコンポーネントを提供する

空のCヘッダー

ヘッダー <complex.h> <ccomplex> <tgmath.h> 、および <ctgmath> は、C標準ライブラリからのコンテンツを一切含まず、代わりにC++標準ライブラリの他のヘッダーを単にインクルードするだけです。

(C++11) (C++17で非推奨) (C++20で削除)
<complex> ヘッダを単純にインクルードする
<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 を定義
効果なし
互換性マクロ定数 __alignas_is_defined および __alignof_is_defined を定義
互換性マクロ定数 __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
翻訳結果: C documentation for Standard Library headers 指示に従い、HTMLタグ、属性、C++固有用語(Standard Library headers)は翻訳せず、元のフォーマットを保持しました。