名前空間
変種
操作

C++標準ライブラリ ヘッダー

From cppreference.com
< cpp
 
 
標準ライブラリヘッダー
 

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

目次

多目的ヘッダー

汎用ユーティリティ:プログラム制御動的メモリ確保乱数ソートと検索[編集]
アルゴリズムの並列版のための事前定義された実行ポリシーと実行制御コンポーネント(C++26以降)[編集]

言語サポートライブラリ

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

コンセプトライブラリ

基本的なライブラリコンセプト[編集]

診断ライブラリ

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

メモリ管理ライブラリ

高レベルメモリ管理ユーティリティ[編集]
多相アロケータとメモリリソース[編集]
ネストしたアロケータクラス[編集]

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

(C++11)
コンパイル時有理数演算[編集]
コンパイル時型情報ユーティリティ[編集]

汎用ユーティリティライブラリ

(C++17)
std::any クラス[編集]
(C++20)
ビット操作関数[編集]
std::bitset クラステンプレート[編集]
std::expected クラステンプレート[編集]
関数オブジェクト、関数呼び出し、バインド操作、参照ラッパー[編集]
std::optional クラステンプレート[編集]
(C++11)
std::tuple クラステンプレート[編集]
様々なユーティリティコンポーネント[編集]
(C++17)
std::variant クラステンプレート[編集]

コンテナライブラリ

(C++11)
std::array コンテナ[編集]
std::deque コンテナ[編集]
std::flat_mapstd::flat_multimap コンテナアダプタ[編集]
std::flat_setstd::flat_multiset コンテナアダプタ[編集]
std::forward_list コンテナ[編集]
(C++26)
std::hive コンテナ[編集]
std::inplace_vector コンテナ[編集]
std::list コンテナ[編集]
std::mapstd::multimap 連想コンテナ[編集]
(C++23)
std::mdspan ビュー[編集]
std::queuestd::priority_queue コンテナアダプタ[編集]
std::setstd::multiset 連想コンテナ[編集]
(C++20)
std::span ビュー[編集]
std::stack コンテナアダプタ[編集]
std::unordered_mapstd::unordered_multimap 非順序連想コンテナ[編集]
std::unordered_setstd::unordered_multiset 非順序連想コンテナ[編集]
std::vector コンテナ[編集]

イテレータライブラリ

範囲イテレータ[編集]

Rangesライブラリ

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

アルゴリズムライブラリ

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

文字列ライブラリ

様々なナロー文字列処理関数[編集]
std::basic_string クラステンプレート[編集]
std::basic_string_view クラステンプレート[編集]

テキスト処理ライブラリ

ナロー文字のカテゴリを判定する関数[編集]
std::to_charsstd::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_tuintmax_t の数学演算と変換[編集]
Cスタイルの入出力関数[編集]
std::filesystem::path クラスとサポート関数[編集]
std::basic_fstreamstd::basic_ifstreamstd::basic_ofstream クラステンプレートとtypedef[編集]
入出力の書式を制御するためのヘルパー関数[編集]
std::ios_base クラス、std::basic_ios クラステンプレートとtypedef[編集]
入出力ライブラリ内の全クラスの前方宣言[編集]
いくつかの標準ストリームオブジェクト[編集]
std::basic_istream クラステンプレートとtypedef[編集]
std::basic_ostreamstd::basic_iostream クラステンプレートとtypedef[編集]
(C++23)
std::print を含む書式付き出力ライブラリ[編集]
std::basic_spanstreamstd::basic_ispanstreamstd::basic_ospanstream クラステンプレートとtypedef[編集]
std::basic_stringstreamstd::basic_istringstreamstd::basic_ostringstream クラステンプレートとtypedef[編集]
std::basic_streambuf クラステンプレート[編集]
(C++98で非推奨)(C++26で削除)
std::strstream, std::istrstream, std::ostrstream[編集]
std::basic_osyncstreamstd::basic_syncbuf とtypedef[編集]

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

(C++11)
アトミック操作ライブラリ[編集]
(C++20)
バリア[編集]
スレッド待機条件[編集]
(C++11)
非同期計算のためのプリミティブ[編集]
ハザードポインタ[編集]
(C++20)
ラッチ[編集]
(C++11)
相互排他プリミティブ[編集]
(C++26)
Read-copy update (RCU) メカニズム[編集]
セマフォ[編集]
共有相互排他プリミティブ[編集]
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> と同じように動作します[編集]
<cinttypes> の各名前がグローバル名前空間に配置されたかのように動作します[編集]
<climits> と同じように動作します[編集]
<clocale> の各名前がグローバル名前空間に配置されたかのように動作します[編集]
<cmath> の各名前がグローバル名前空間に配置されたかのように動作します。
ただし、数学特殊関数の名前は除きます[編集]
<csetjmp> の各名前がグローバル名前空間に配置されたかのように動作します[編集]
<csignal> の各名前がグローバル名前空間に配置されたかのように動作します[編集]
<cstdarg> の各名前がグローバル名前空間に配置されたかのように動作します[編集]
<cstddef> の各名前がグローバル名前空間に配置されたかのように動作します。
ただし、std::byte と関連関数の名前は除きます[編集]
<cstdint> の各名前がグローバル名前空間に配置されたかのように動作します[編集]
<cstdio> の各名前がグローバル名前空間に配置されたかのように動作します[編集]
<cstdlib> の各名前がグローバル名前空間に配置されたかのように動作します[編集]
<cstring> の各名前がグローバル名前空間に配置されたかのように動作します[編集]
<ctime> の各名前がグローバル名前空間に配置されたかのように動作します[編集]
(C++11)
<cuchar> の各名前がグローバル名前空間に配置されたかのように動作します[編集]
<cwchar> の各名前がグローバル名前空間に配置されたかのように動作します[編集]
<cwctype> の各名前がグローバル名前空間に配置されたかのように動作します[編集]

[編集] 特殊なC互換ヘッダー

ヘッダー<stdatomic.h>は、C標準ライブラリでも提供されている名前を宣言し、Cではキーワードである_Atomicマクロを定義します。他のxxx.hヘッダーとは異なり、対応する<cstdatomic>は提供されません。

_Atomicを定義し、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>の内容と同等のオーバーロードは、これらのヘッダーによってすでに提供されています[編集]
単にヘッダー<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つの互換性マクロ定数を定義します[編集]
効果はありません[編集]
1つの互換性マクロ定数を定義します[編集]
1つの互換性マクロ定数を定義します[編集]

[編集] サポートされないCヘッダー

Cヘッダーの<stdatomic.h>(C++23まで) <stdnoreturn.h><threads.h>はC++には含まれておらず、cxxx相当のものもありません。

[編集] 実験的ライブラリ

C++ TR/TSもいくつかのヘッダーのコレクションを定義しています。

[編集] 関連項目

C ドキュメントC標準ライブラリヘッダー
English 日本語 中文(简体) 中文(繁體)