C++/標準ライブラリ/言語サポートライブラリ

17 Language support library(support)

編集

この章では、いくつかのC++プログラムの実行中に暗黙的に呼び出される関数シグネチャや暗黙的に生成されるオブジェクトの型について説明します。また、これらの関数シグネチャを宣言し、関連する型を定義するヘッダーについても述べています。

17.1 General(support.general)

編集

概要

編集
  1. 説明
    この節では、いくつかのC++プログラムの実行中に暗黙的に呼び出される関数シグネチャと、暗黙的に生成されるオブジェクトの型について説明します。
    また、これらの関数シグネチャを宣言し、関連する型を定義するヘッダーについても説明します。
  2. 小節の内容
    次の小節では、ライブラリ全体で使用される共通の型定義、事前定義された型の特性、C++プログラムの開始と終了をサポートする関数、動的メモリ管理のサポート、動的型識別のサポート、例外処理のサポート、初期化リストのサポート、その他のランタイムサポートについて説明します。これらの内容はTable 38に要約されています。

Table 38: Language support library summary (tab:support.summary)

編集
Table 38: Language support library summary (tab:support.summary)
小節 ヘッダー
17.2 Common definitions <cstddef>, <cstdlib>
17.3 Implementation properties <cfloat>, <climits>, <limits>, <version>
17.4 Arithmetic types <cstdint>, <stdfloat>
17.5 Start and termination <cstdlib>
17.6 Dynamic memory management <new>
17.7 Type identification <typeinfo>
17.8 Source location <source_location>
17.9 Exception handling <exception>
17.10 Initializer lists <initializer_list>
17.11 Comparisons <compare>
17.12 Coroutines <coroutine>
17.13 Other runtime support <csetjmp>, <csignal>, <cstdarg>, <cstdlib>

17.2 Common definitions(cstddef, cstdlib)

編集
<cstddef>
サイズやポインタ型、NULLポインタを定義する。
例: size_t, ptrdiff_t, nullptr_t
<cstdlib>
汎用ユーティリティ関数やマクロを提供する。
例: malloc, free, exit, atexit

17.3 Implementation properties(cfloat, climits, limits, version)

編集
<cfloat>
浮動小数点数の限界や特性を定義する。
例: FLT_MAX, DBL_MIN
<climits>
整数型の限界を定義する。
例: INT_MAX, CHAR_MIN
<limits>
テンプレートクラスnumeric_limitsを提供し、型の限界や特性を定義する。
例: std::numeric_limits<int>::max()
<version>
実装に関するバージョン情報を提供する。

17.4 Arithmetic types(cstdint, stdfloat)

編集
<cstdint>
固定サイズの整数型を定義する。
例: int8_t, uint64_t
<stdfloat>
標準浮動小数点数型を定義する(C++23以降で追加予定)。

17.5 Start and termination(cstdlib)

編集
<cstdlib>
プログラムの開始と終了をサポートする関数を提供する。
例: exit, atexit, quick_exit

17.6 Dynamic memory management(new)

編集
<new>
動的メモリ管理をサポートする演算子と関数を提供する。
例: operator new, operator delete

17.7 Type identification(typeinfo)

編集
<typeinfo>
動的型識別をサポートするためのクラスを提供する。
例: typeid, std::type_info

17.8 Source location(source_location)

編集
<source_location>
プログラムソースの位置情報を提供するクラス。
例: std::source_location::current()

17.9 Exception handling(exception)

編集
<exception>
例外処理をサポートするクラスと関数を提供する。
例: std::exception, std::terminate<code>, std::unexpected

17.10 Initializer lists(initializer_list)

編集
<initializer_list>
初期化リストをサポートするクラスを提供する。
例: std::initializer_list<T>

17.11 Comparisons(compare)

編集
<compare>
比較演算をサポートするためのクラスと関数を提供する。
例: std::strong_ordering, std::weak_ordering

17.12 Coroutines(coroutine)

編集
<coroutine>
コルーチンをサポートするためのライブラリ機能を提供する。
例: std::coroutine_handle, std::suspend_always

17.13 Other runtime support(csetjmp, csignal, cstdarg, cstdlib)

編集
<csetjmp>
非局所ジャンプをサポートする。
例: setjmp, longjmp
<csignal>
シグナル処理をサポートする。
例: signal, raise
<cstdarg>
可変長引数リストをサポートする。
例: va_list, va_start, va_end
<cstdlib>
汎用ユーティリティ関数やマクロを再度提供する(既に説明済み)。