名前空間
変種
操作

C++標準ライブラリヘッダファイル

提供: cppreference.com
< cpp
 
 
 

C++標準ライブラリのインタフェースは以下のヘッダファイル群により定義されます。

目次

コンセプトライブラリ

<concepts> (C++20およびそれ以降) 基礎的なライブラリコンセプト

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

<cstdlib> 汎用ユーティリティ: プログラム制御動的メモリ確保乱数ソートと検索
<csignal> シグナル管理のための関数とマクロ定数
<csetjmp> 実行コンテキストを保存 (およびジャンプ) するマクロ (および関数)
<cstdarg> 可変長引数リストの処理
<typeinfo> 実行時型情報ユーティリティ
<typeindex> (C++11およびそれ以降) std::type_index
<type_traits> (C++11およびそれ以降) コンパイル時型情報
<bitset> std::bitset クラステンプレート
<functional> 関数オブジェクト、関数呼び出し、バインド操作、参照ラッパー
<utility> 様々なユーティリティ部品
<ctime> C スタイルの日付と時間のユーティリティ
<chrono> (C++11およびそれ以降) C++ の時間ユーティリティ
<cstddef> 標準的なマクロと typedef
<initializer_list> (C++11およびそれ以降) std::initializer_list クラステンプレート
<tuple> (C++11およびそれ以降) std::tuple クラステンプレート
<any> (C++17およびそれ以降) std::any クラス
<optional> (C++17およびそれ以降) std::optional クラステンプレート
<variant> (C++17およびそれ以降) std::variant クラステンプレート
<compare> (C++20およびそれ以降) 三方比較演算子サポート
<version> (C++20およびそれ以降) 実装依存のライブラリ情報を供給します
動的メモリ管理
<new> 低水準メモリ管理ユーティリティ
<memory> 高水準メモリ管理ユーティリティ
<scoped_allocator> (C++11およびそれ以降) ネストされたアロケータクラス
<memory_resource> (C++17およびそれ以降) 多相アロケータとメモリリソース
数値の限界
<climits> 整数型の限界
<cfloat> 浮動小数点型の限界
<cstdint> (C++11およびそれ以降) 固定サイズの型他の型の限界
<cinttypes> (C++11およびそれ以降) 書式マクロintmax_t および uintmax_t の数学と変換
<limits> 算術型の特性を問い合わせる標準化された方法
エラー処理
<exception> 例外処理ユーティリティ
<stdexcept> 標準の例外オブジェクト
<cassert> 引数をゼロと比較する条件コンパイルされるマクロ
<system_error> (C++11およびそれ以降) プラットフォーム依存のエラーコード std::error_code の定義
<cerrno> 最後のエラー番号を保持するマクロ

文字列ライブラリ

<cctype> 文字の種類を判定する関数
<cwctype> ワイド文字の種類を判定する関数
<cstring> 様々なナロー文字列処理関数
<cwchar> 様々なワイドおよびマルチバイト文字列処理関数
<cuchar> (C++11およびそれ以降) C スタイルの Unicode 文字変換関数
<string> std::basic_string クラステンプレート
<string_view> (C++17およびそれ以降) std::basic_string_view クラステンプレート
<charconv> (C++17およびそれ以降) std::to_chars および std::from_chars

コンテナライブラリ

<array> (C++11およびそれ以降) std::array コンテナ
<vector> std::vector コンテナ
<deque> std::deque コンテナ
<list> std::list コンテナ
<forward_list> (C++11およびそれ以降) std::forward_list コンテナ
<set> std::set および std::multiset 連想コンテナ
<map> std::map および std::multimap 連想コンテナ
<unordered_set> (C++11およびそれ以降) std::unordered_set および std::unordered_multiset 非順序連想コンテナ
<unordered_map> (C++11およびそれ以降) std::unordered_map および std::unordered_multimap 非順序連想コンテナ
<stack> std::stack コンテナアダプタ
<queue> std::queue および std::priority_queue コンテナアダプタ
<span> (C++20およびそれ以降) std::span ビュー

アルゴリズムライブラリ

<algorithm> コンテナ操作アルゴリズム
<execution> (C++17) アルゴリズムの並列実行バージョンのための定義済みの実行ポリシー

イテレータライブラリ

<iterator> コンテナのイテレータ

数値演算ライブラリ

<cmath> 一般的な数学関数
<complex> 複素数型
<valarray> 値の配列を表現、操作するためのクラス
<random> (C++11およびそれ以降) 乱数生成および分布
<numeric> コンテナ内の値に対する数値演算
<ratio> (C++11およびそれ以降) コンパイル時有理数算術
<cfenv> (C++11およびそれ以降) 浮動小数点環境にアクセスする関数
<bit> (C++20およびそれ以降) ビット操作関数

入出力ライブラリ

<iosfwd> 入出力ライブラリのすべてのクラスの前方宣言
<ios> std::ios_base クラス、std::basic_ios クラステンプレートといくつかの typedef
<istream> std::basic_istream クラステンプレートといくつかの typedef
<ostream> std::basic_ostream, std::basic_iostream クラステンプレートといくつかの typedef
<iostream> いくつかの標準ストリームオブジェクト
<fstream> std::basic_fstream, std::basic_ifstream, std::basic_ofstream クラステンプレートといくつかの typedef
<sstream> std::basic_stringstream, std::basic_istringstream, std::basic_ostringstream クラステンプレートといくつかの typedef
<syncstream> (C++20およびそれ以降) std::basic_osyncstream, std::basic_syncbuf と typedef
<strstream>(非推奨) std::strstream, std::istrstream, std::ostrstream
<iomanip> 入出力の書式を制御するヘルパー関数
<streambuf> std::basic_streambuf クラステンプレート
<cstdio> C スタイルの入出力関数

ローカライゼーションライブラリ

<locale> ローカライゼーションユーティリティ
<clocale> C のローカライゼーションユーティリティ
<codecvt> (C++11およびそれ以降) (C++17で非推奨) Unicode 変換機能

正規表現ライブラリ

<regex> (C++11およびそれ以降) 正規表現処理をサポートするクラス、アルゴリズムおよびイテレータ

アトミック操作ライブラリ

<atomic> (C++11およびそれ以降) アトミック操作ライブラリ

スレッドサポートライブラリ

<thread> (C++11およびそれ以降) std::thread クラスとサポート関数
<mutex> (C++11およびそれ以降) 相互排他プリミティブ
<shared_mutex> (C++14およびそれ以降) 共有可能な相互排他プリミティブ
<future> (C++11およびそれ以降) 非同期計算のためのプリミティブ
<condition_variable> (C++11およびそれ以降) スレッドの待機状態

ファイルシステムライブラリ

<filesystem> (C++17およびそれ以降) std::path クラスとサポート関数

実験的なライブラリ

<experimental/algorithm> (library fundamentals TS) 標準ライブラリ拡張および並列処理のための拡張
<experimental/any> (library fundamentals TS) 標準ライブラリ拡張
<experimental/chrono> (library fundamentals TS) 標準ライブラリ拡張
<experimental/deque> (library fundamentals TS) 標準ライブラリ拡張
<experimental/execution_policy> (parallelism TS) 並列処理のための拡張
<experimental/exception_list> (parallelism TS) 並列処理のための拡張
<experimental/filesystem> (filesystem TS) ファイルシステムライブラリ
<experimental/forward_list> (library fundamentals TS) 標準ライブラリ拡張
<experimental/future> (library fundamentals TS) 標準ライブラリ拡張
<experimental/list> (library fundamentals TS) 標準ライブラリ拡張
<experimental/functional> (library fundamentals TS) 標準ライブラリ拡張
<experimental/map> (library fundamentals TS) 標準ライブラリ拡張
<experimental/memory> (library fundamentals TS) 標準ライブラリ拡張
<experimental/memory_resource> (library fundamentals TS) 標準ライブラリ拡張
<experimental/numeric> (parallelism TS) 並列処理のための拡張
<experimental/optional> (library fundamentals TS) 標準ライブラリ拡張
<experimental/ratio> (library fundamentals TS) 標準ライブラリ拡張
<experimental/regex> (library fundamentals TS) 標準ライブラリ拡張
<experimental/set> (library fundamentals TS) 標準ライブラリ拡張
<experimental/string> (library fundamentals TS) 標準ライブラリ拡張
<experimental/string_view> (library fundamentals TS) 標準ライブラリ拡張
<experimental/system_error> (library fundamentals TS) 標準ライブラリ拡張
<experimental/tuple> (library fundamentals TS) 標準ライブラリ拡張
<experimental/type_traits> (library fundamentals TS) 標準ライブラリ拡張
<experimental/unordered_map> (library fundamentals TS) 標準ライブラリ拡張
<experimental/unordered_set> (library fundamentals TS) 標準ライブラリ拡張
<experimental/utility> (library fundamentals TS) 標準ライブラリ拡張
<experimental/vector> (library fundamentals TS) 標準ライブラリ拡張

[編集] C 互換ヘッダ

<〜.h> 形式の C 標準ライブラリヘッダのいくつかは、それと同じ名前のヘッダと <c〜> 形式のヘッダの両方が C++ 標準ライブラリに含まれています (意味のある <c〜> 形式のヘッダはすべて上の一覧に挙げられています)。

<complex.h> を除いて 、 C++ 標準ライブラリに含まれている各々の <〜.h> 形式のヘッダは、対応する <c〜> ヘッダで std 名前空間に配置される各々の名前をグローバル名前空間に配置します。

これらのヘッダは、同じ名前を std 名前空間でも宣言するかもしれません。 また、対応する <c〜> ヘッダは、同じ名前をグローバル名前空間でも宣言するかもしれません。 例えば、 <cstdlib> をインクルードすると、 std::malloc は確実に提供されますが、さらに ::malloc も提供されるかもしれません。 <stdlib.h> をインクルードすると、 ::malloc は確実に提供されますが、さらに std::malloc も提供されるかもしれません。 これは C 標準ライブラリの一部ではない関数や関数オーバーロードに対しても適用されます。

<assert.h> (非推奨) <cassert> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います
<ctype.h> (非推奨) <cctype> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います
<errno.h> (非推奨) <cerrno> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います
<fenv.h> (非推奨) <cfenv> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います
<float.h> (非推奨) <cfloat> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います
<inttypes.h> (非推奨) <cinttypes> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います
<limits.h> (非推奨) <climits> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います
<locale.h> (非推奨) <clocale> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います
<math.h> (非推奨) 特殊な数学関数の名前を除いて、 <cmath> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います
<setjmp.h> (非推奨) <csetjmp> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います
<signal.h> (非推奨) <csignal> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います
<stdarg.h> (非推奨) <cstdarg> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います
<stddef.h> (非推奨) std::byte およびそれに関連する関数を除いて、 <cstddef> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います
<stdint.h> (非推奨) <cstdint> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います
<stdio.h> (非推奨) <cstdio> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います
<stdlib.h> (非推奨) <cstdlib> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います
<string.h> (非推奨) <cstring> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います
<time.h> (非推奨) <ctime> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います
<uchar.h> (非推奨) <cuchar> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います
<wchar.h> (非推奨) <cwchar> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います
<wctype.h> (非推奨) <cwctype> に含まれる各々の名前がグローバル名前空間に配置されるかのように振る舞います

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

C のヘッダ <stdatomic.h>, <stdnoreturn.h>, <threads.h> は C++ に含まれておらず、対応する <c〜> もありません。

[編集] 空の C のヘッダ

ヘッダ <complex.h>, <ccomplex>, <tgmath.h>, <ctgmath> は C 標準ライブラリ由来の内容を何も含んでおらず、代わりに C++ 標準ライブラリの他のヘッダをインクルードするだけのものになっています。 これらのヘッダの使用はすべて C++ では非推奨です。

<ccomplex> (C++11およびそれ以降)(C++17で非推奨)(C++20で削除) ヘッダ <complex> をインクルードするだけです
<complex.h> (非推奨) ヘッダ <complex> をインクルードするだけです
<ctgmath> (C++11およびそれ以降)(C++17で非推奨)(C++20で削除) ヘッダ <complex> および <cmath> をインクルードするだけです。 C のヘッダ <tgmath.h> の内容と同等なオーバーロードがこれらのヘッダによってすでに提供されています
<tgmath.h> (非推奨) ヘッダ <complex> および <cmath> をインクルードするだけです

[編集] 無意味な C のヘッダ

ヘッダ <ciso646>, <cstdalign>, <cstdbool> は C++ では無意味です。 C でこれらのヘッダにより提供されるマクロは、 C++ では言語のキーワードです。

<ciso646> (C++20で削除) 空のヘッダ。 C で <iso646.h> にあるマクロは C++ ではキーワードです
<iso646.h> (非推奨) 効果を持ちません
<cstdalign> (C++11およびそれ以降)(C++17で非推奨)(C++20で削除) 互換マクロ定数をひとつ定義します
<stdalign.h> (非推奨) 互換マクロ定数をひとつ定義します
<cstdbool> (C++11およびそれ以降)(C++17で非推奨) (C++20で削除) 互換マクロ定数をひとつ定義します
<stdbool.h> (非推奨) defines one 互換マクロ定数をひとつ定義します

[編集] 関連項目

C標準ライブラリヘッダファイルC言語リファレンス