C++ 標準ライブラリ (STL) の概要

すべての C++ ライブラリのエンティティは 1 つ以上の標準ヘッダーで宣言または定義されます。 この実装には、他の 2 つのヘッダーと<hash_set><hash_map> C++ 標準では必要ないヘッダーが含まれています。 この実装でサポートされるヘッダーの完全な一覧については、ヘッダー ファイルのリファレンスを参照してください

C++ 標準では、次の 2 種類の準拠ライブラリが定義されています。

  • ホストされた実装。C++ ISO 標準で記述されている必要なすべての標準ライブラリ ヘッダーをサポートします。
  • 標準ライブラリ ヘッダーのサブセットのみを必要とする、独立した実装。 必要なサブセットは次のとおりです。
独立したヘッダー のサブセット
<atomic> (少なくとも atomic_signed_lock_free 宣言して atomic_unsigned_lock_free) <cstdint> <ranges>
<bit> <cstdlib> (少なくとも abort、 , atexit, at_quick_exit, exitquick_exit宣言) <ratio>
<cfloat> <exception> <tuple>
<climits> <functional> <typeinfo>
<compare> <initializer_list> <source_location>
<concepts> <iterator> <type_traits>
<coroutine> <limits> <utility>
<cstdarg> <memory> <version>
<cstddef> <new>

C++11 以降では、次のヘッダーは非推奨です。 <ciso646><cstdalign><cstdbool>

独立した実装とホストされる実装のその他の違いは次のとおりです。

  • ホストされる実装には、という名前 mainのグローバル関数が必要です。 独立した実装では、独自のスタートアップ関数と終了関数を定義できます。
  • ホストされる実装では、同時に実行される複数のスレッドをサポートする必要があります。 独立した実装の実装者は、ライブラリが同時実行スレッドをサポートするかどうかを決定します。

Microsoft C++ 標準ライブラリは、独立した要件とホストされている要件の両方を満たしています。

C++ のライブラリのヘッダーには 2 つの広範な再分割があります。

このセクションでは、以下のセクションについて説明します。

Visual C++ ランタイム ライブラリの詳細については、「CRT ライブラリの機能」をご覧ください。

Note

Microsoft による C++ 標準ライブラリの実装は、多くの場合、STL または標準テンプレート ライブラリ呼ばれます。 C++ 標準ライブラリは ISO 14882 で定義されているライブラリの正式な名前ですが、検索エンジンでは "STL" と "標準テンプレート ライブラリ" が一般的に使用されているため、これらの名前を使用してドキュメントを見つけやすくなります。 歴史的な観点から見ると、"STL"はもともとアレキサンダー・ステパノフによって書かれた標準テンプレートライブラリを指しました。 そのライブラリの一部は、C++ 標準ライブラリ、ISO C ランタイム ライブラリ、Boost ライブラリの一部、およびその他の機能と共に標準化されました。 "STL" は、Stepanov の STL から適応された C++ 標準ライブラリのコンテナーとアルゴリズムの部分を参照するためにも使用される場合があります。 このドキュメントでは、標準テンプレート ライブラリ (STL) は C++ 標準ライブラリ全体を指します。

関連項目

C++ 標準ライブラリ