C++ benannte Anforderungen: EmplaceConstructible (seit C++11)
Gibt an, dass ein Objekt des Typs aus einer gegebenen Menge von Argumenten in uninitialisiertem Speicher mit einem gegebenen Allokator konstruiert werden kann.
[bearbeiten] Anforderungen
Der Typ T ist EmplaceConstructible in den Container X (dessen value_type identisch mit T ist) aus den Argumenten args, wenn gegeben
A
|
ein Allokator-Typ |
m
|
ein Lvalue vom Typ A |
p
|
der von dem Container vorbereitete Zeiger vom Typ T* |
args
|
null oder mehr Argumente |
wobei X::allocator_type identisch mit std::allocator_traits<A>::rebind_alloc<T> ist,
der folgende Ausdruck wohlgeformt ist
std::allocator_traits<A>::construct(m, p, args);
Wenn X nicht allokatorbewusst ist oder eine std::basic_string-Spezialisierung ist, wird der Begriff so definiert, als ob A std::allocator<T> wäre, mit der Ausnahme, dass kein Allokatorobjekt erstellt werden muss und benutzerdefinierte Spezialisierungen von std::allocator nicht instanziiert werden.
[bearbeiten] Hinweise
Obwohl bis C++23 gefordert war, dass ein angepasster construct beim Konstruieren von Elementen von std::basic_string verwendet wird, haben alle Implementierungen nur den Standardmechanismus genutzt. Die Anforderung wurde durch P1072R10 korrigiert, um die bestehende Praxis anzupassen.
[bearbeiten] Siehe auch
| CopyInsertable | |
| MoveInsertable |