22 General utilities library(utilities)
編集この章では、C++プログラムで一般的に有用なユーティリティを説明します。これらのユーティリティの一部は、C++標準ライブラリの他の要素によって使用されます。これらのユーティリティはTable 57に要約されています。
Table 57: General utilities library summary(tab:utilities.summary)
編集Table 57: General utilities library summary(tab:utilities.summary) 小節 ヘッダー 22.2 Utility components <utility>
22.3 Pairs 22.4 Tuples <tuple>
22.5 Optional objects <optional>
22.6 Variants <variant>
22.7 Storage for any type <any>
22.8 Expected objects <expected>
22.9 Fixed-size sequences of bits <bitset>
22.10 Function objects <functional>
22.11 Type indexes <typeindex>
22.12 Execution policies <execution>
22.13 Primitive numeric conversions <charconv>
22.14 Formatting <format>
22.15 Bit manipulation <bit>
22.1 General(utilities.general)
編集この節では、C++プログラムで一般的に有用なユーティリティについて説明します。一部のユーティリティはC++標準ライブラリの他の要素によって使用されます。
22.2 Utility components(utility)
編集この節では、以下のユーティリティコンポーネントについて説明します。
- 概要
<utility>
ヘッダーには、様々なユーティリティ関数やクラスが含まれています。これらのユーティリティは、多くの一般的なタスクを簡素化するために設計されています。- 主な機能
-
std::move
- オブジェクトをムーブするためのユーティリティ。これにより、リソースの所有権を転送することができます。
std::forward
- 完璧な転送をサポートするためのユーティリティ。テンプレート関数で使用され、引数を適切に転送するのに役立ちます。
std::swap
- 2つのオブジェクトの値を交換します。
std::declval
- 型の宣言だけを行い、オブジェクトを生成せずに型情報を取得するためのユーティリティ。
22.3 Pairs
編集ペア(2つの要素)を扱うためのクラステンプレートです。例えば、std::pair
は2つの異なる型のオブジェクトを1つにまとめて扱うことができます。
22.4 Tuples <tuple>
編集タプルは任意の数の異なる型のオブジェクトを1つにまとめて扱うことができるクラステンプレートです。タプルを使用することで、異なる型の複数の値を一度に返すことができます。
22.5 Optional objects <optional>
編集オプショナルオブジェクトは、値を持つか持たないかを表現するためのクラステンプレートです。例えば、std::optional
は、値が存在しない場合でも安全に扱うことができます。
22.6 Variants <variant>
編集バリアントは複数の型のいずれか1つの値を持つことができる型安全なユニオンです。例えば、std::variant
は異なる型の値を一つのオブジェクトとして扱うことができます。
22.7 Storage for any type <any>
編集任意の型のオブジェクトを動的に保持するためのクラスです。std::any
は、異なる型の値を一つのオブジェクトとして格納できます。
22.8 Expected objects <expected>
編集値かエラーメッセージのいずれかを保持するためのクラステンプレートです。std::expected
は、正常な結果とエラーを扱うために使用されます。
22.9 Fixed-size sequences of bits <bitset>
編集固定サイズのビット列を扱うためのクラスです。std::bitset
は、ビット単位の操作を効率的に行うことができます。
22.10 Function objects <functional>
編集関数オブジェクト、関数ポインタ、ラムダ式などを扱うためのユーティリティが含まれています。std::function
は、関数呼び出しを抽象化するために使用されます。
22.11 Type indexes <typeindex>
編集実行時に型情報を取得するためのクラスです。std::type_index
は、型情報の比較やハッシュ化に使用されます。
22.12 Execution policies <execution>
編集並列処理やベクトル化を制御するための実行ポリシーを提供します。例えば、std::execution::par
や std::execution::seq
などがあります。
22.13 Primitive numeric conversions <charconv>
編集文字列と数値の間の変換を効率的に行うためのユーティリティです。std::from_chars
と std::to_chars
は、文字列と数値間の変換に使用されます。
22.14 Formatting <format>
編集文字列のフォーマットをサポートするためのユーティリティです。std::format
は、指定された形式に従って文字列を整形します。
22.15 Bit manipulation <bit>
編集ビット操作を行うためのユーティリティが含まれています。例えば、ビットシフトやビットマスクなどの操作を効率的に行うことができます。