std:: polymorphic
|
Definiert im Header
<memory>
|
||
|
template
<
class
T,
class
Allocator
=
std::
allocator
<
T
>
>
class polymorphic ; |
(1) | (seit C++26) |
|
namespace
pmr
{
template
<
class
T
>
|
(2) | (seit C++26) |
std::polymorphic
ist ein Wrapper, der ein dynamisch allokiertes Objekt möglicherweise unterschiedlicher Typen mit wertähnlicher Semantik enthält.
Ein
std::polymorphic
-Objekt verwaltet die
Lebensdauer
eines besessenen Objekts. Das besessene Objekt ist vom Typ
T
oder einem beliebigen (öffentlich und eindeutig) von
T
abgeleiteten Typ. Ein
std::polymorphic
-Objekt kann nur dann kein besessenes Objekt haben, nachdem es verschoben wurde, in diesem Fall ist es
wertlos
.
Jedes Objekt vom Typ
std::polymorphic<T, Allocator>
verwendet ein Objekt vom Typ
Allocator
, um bei Bedarf Speicher für das verwaltete Objekt zu allozieren und freizugeben.
Wenn ein Programm eine explizite oder partielle Spezialisierung von
std::polymorphic
deklariert, ist das Verhalten undefiniert.
Inhaltsverzeichnis |
Template-Parameter
| T | - | der Typ des besessenen Objekts |
| Allocator | - | der Typ des zugeordneten Allokators |
| Typanforderungen | ||
-
T
kann ein
unvollständiger Typ
sein.
|
||
-
T
einer der folgenden Typen ist, ist das Programm fehlerhaft:
|
||
-
Allocator
nicht die Anforderungen eines
Allocator
erfüllt, ist das Programm fehlerhaft.
|
||
-
T
ist, ist das Programm fehlerhaft.
|
||
Verschachtelte Typen
| Typ | Definition |
value_type
|
T
|
allocator_type
|
Allocator
|
pointer
|
typename std:: allocator_traits < Allocator > :: pointer |
const_pointer
|
typename std:: allocator_traits < Allocator > :: const_pointer |
Datenmitglieder
| Member | Beschreibung |
Allocator
alloc
|
der zugehörige Allokator
( Nur-Darstellungs-Memberobjekt* ) |
Memberfunktionen
konstruiert das
polymorphic
Objekt
(öffentliche Elementfunktion) |
|
|
zerstört den enthaltenen Wert, falls vorhanden
(öffentliche Elementfunktion) |
|
|
weist Inhalte zu
(öffentliche Elementfunktion) |
|
Beobachter |
|
|
greift auf den enthaltenen Wert zu
(öffentliche Elementfunktion) |
|
prüft ob das
polymorphic
Objekt wertlos ist
(öffentliche Elementfunktion) |
|
|
gibt den zugeordneten Allokator zurück
(öffentliche Elementfunktion) |
|
Modifikatoren |
|
|
tauscht die Inhalte aus
(öffentliche Elementfunktion) |
|
Nicht-Member-Funktionen
|
(C++26)
|
spezialisiert den
std::swap
Algorithmus
(Funktionsschablone) |
Hinweise
| Feature-Test Makro | Wert | Std | Feature |
|---|---|---|---|
__cpp_lib_polymorphic
|
202502L
|
(C++26) |
std::polymorphic
|
Beispiel
|
Dieser Abschnitt ist unvollständig
Grund: Kein Beispiel |
Siehe auch
|
(C++26)
|
ein Wrapper, der ein dynamisch allokiertes Objekt mit wertähnlicher Semantik enthält
(Klassentemplate) |