Namensräume
Varianten
Aktionen

std::allocation_result

Von cppreference.com
< cpp‎ | memory
 
 
Speicherverwaltungsbibliothek
(nur Exposition*)
Algorithmen für uninitialisierten Speicher
(C++17)
(C++17)
(C++17)
Beschränkte uninitialisierte
Speicher-Algorithmen
C-Bibliothek

Allocatoren
allocation_result
(C++23)
Speicherressourcen
Unterstützung für Garbage Collection
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
Uninitialisierter Speicher
Explizites Lebenszeitmanagement
 
Definiert in Header <memory>
template< class Pointer, class SizeType = std::size_t >
struct allocation_result;
(seit C++23)

allocation_result Spezialisierungen werden von der allocate_at_least Memberfunktion geeigneter Allocator Typen (z.B. std::allocator::allocate_at_least) und std::allocator_traits::allocate_at_least zurückgegeben.

Jede Spezialisierung von allocation_result hat keine Basisklassen oder deklarierten Member außer ptr und count, daher ist sie geeignet für Aggregatinitialisierung und strukturierte Bindungen.

Inhalt

[bearbeiten] Template-Parameter

Zeiger - typischerweise std::allocator_traits<Alloc>::pointer, wobei Alloc ein Allocator Typ ist
SizeType - typischerweise std::allocator_traits<Alloc>::size_type, wobei Alloc ein Allocator Typ ist

[bearbeiten] Datenmember

Member-Name Definition
ptr
ein Zeiger vom Typ Pointer, der typischerweise für die Adresse des ersten Elements im von allocate_at_least zugewiesenen Speicher verwendet wird
(öffentliches Mitgliedsobjekt)
zählt
ein Wert vom Typ SizeType, der typischerweise für die tatsächliche Anzahl der Elemente im von allocate_at_least zugewiesenen Speicher verwendet wird
(öffentliches Mitgliedsobjekt)

[bearbeiten] Hinweise

Pointer und SizeType sind standardmäßig ein Zeiger auf einen Objekttyp und std::make_unsigned_t<std::ptrdiff_t> (was fast immer dasselbe ist wie std::size_t).

Feature-Test-Makro Wert Std Feature
__cpp_lib_allocate_at_least 202302L (C++23) Größen-Feedback in der Allocator-Schnittstelle

[bearbeiten] Beispiel

[bearbeiten] Siehe auch

weist uninitialisierten Speicher zu, der mindestens so groß ist wie die angeforderte Größe
(public member function of std::allocator<T>) [bearbeiten]
[static] (C++23)
allokiert Speicher, der mindestens so groß ist wie die angeforderte Größe über einen Allokator
(public static member function of std::allocator_traits<Alloc>) [edit]