C++/標準ライブラリ/言語サポートライブラリ
表示
17 Language support library(support)
[編集]この章では、いくつかのC++プログラムの実行中に暗黙的に呼び出される関数シグネチャや暗黙的に生成されるオブジェクトの型について説明します。また、これらの関数シグネチャを宣言し、関連する型を定義するヘッダーについても述べています。
17.1 General(support.general)
[編集]概要
[編集]- 説明
- この節では、いくつかのC++プログラムの実行中に暗黙的に呼び出される関数シグネチャと、暗黙的に生成されるオブジェクトの型について説明します。
- また、これらの関数シグネチャを宣言し、関連する型を定義するヘッダーについても説明します。
- 小節の内容
- 次の小節では、ライブラリ全体で使用される共通の型定義、事前定義された型の特性、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)
[編集]<limits>
- テンプレートクラス
numeric_limits
を提供し、型の限界や特性を定義する。 - 例:
std::numeric_limits<int>::max()
<version>
- 実装に関するバージョン情報を提供する。
17.4 Arithmetic types(cstdint, stdfloat)
[編集]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>
- 汎用ユーティリティ関数やマクロを再度提供する(既に説明済み)。