std:: polymorphic
|
ヘッダーで定義
<memory>
|
||
|
template
<
class
T,
class
Allocator
=
std::
allocator
<
T
>
>
class polymorphic ; |
(1) | (C++26以降) |
|
namespace
pmr
{
template
<
class
T
>
|
(2) | (C++26以降) |
std::polymorphic
は、値のようなセマンティクスを持つ異なる型の動的に割り当てられたオブジェクトを含むラッパーです。
std::polymorphic
オブジェクトは、所有するオブジェクトの
生存期間
を管理します。所有されるオブジェクトの型は
T
または
T
から(公開かつ明確に)派生した任意の型です。
std::polymorphic
オブジェクトは、ムーブされた後にのみ所有オブジェクトを持たない状態になり、この場合
無効状態
となります。
std::polymorphic<T, Allocator>
型のすべてのオブジェクトは、必要に応じて所有するオブジェクトのストレージを割り当ておよび解放するために、
Allocator
型のオブジェクトを使用します。
プログラムが
std::polymorphic
の明示的特殊化または部分特殊化を宣言する場合、動作は未定義です。
目次 |
テンプレートパラメータ
| T | - | 所有されるオブジェクトの型 |
| Allocator | - | 関連付けられたアロケータの型 |
| 型要件 | ||
-
T
は
不完全型
であってもよい。
|
||
-
T
が以下の型のいずれかである場合、プログラムは不適格となる:
|
||
-
Allocator
が
Allocator
の要件を満たさない場合、プログラムは不適格となる。
|
||
-
T
と同じ型でない場合、プログラムは不適格となる。
|
||
ネストされた型
| 型 | 定義 |
value_type
|
T
|
allocator_type
|
Allocator
|
pointer
|
typename std:: allocator_traits < Allocator > :: pointer |
const_pointer
|
typename std:: allocator_traits < Allocator > :: const_pointer |
データメンバ
| メンバー | 説明 |
Allocator
alloc
|
関連付けられたアロケータ
( 説明専用メンバーオブジェクト* ) |
メンバー関数
polymorphic
オブジェクトを構築する
(public member function) |
|
|
所有する値がある場合は破棄する
(public member function) |
|
|
内容を代入する
(public member function) |
|
Observers |
|
|
所有する値にアクセスする
(public member function) |
|
polymorphic
が値を持たないかどうかをチェックする
(public member function) |
|
|
関連付けられたアロケータを返す
(public member function) |
|
Modifiers |
|
|
内容を交換する
(public member function) |
|
非メンバー関数
|
(C++26)
|
std::swap
アルゴリズムを特殊化
(関数テンプレート) |
注記
| 機能テスト マクロ | 値 | 標準 | 機能 |
|---|---|---|---|
__cpp_lib_polymorphic
|
202502L
|
(C++26) |
std::polymorphic
|
例
|
このセクションは不完全です
理由: 例がありません |
関連項目
|
(C++26)
|
値のようなセマンティクスを持つ動的に割り当てられたオブジェクトを含むラッパー
(クラステンプレート) |