Namensräume
Varianten
Aktionen

std::experimental::pmr::resource_adaptor, std::pmr::experimental::resource_adaptor

Von cppreference.com
 
 
 
 
 
Definiert im Header <experimental/memory_resource>
template< class Alloc >

using resource_adaptor = /*resource-adaptor-imp*/<
                             typename std::allocator_traits<Alloc>::

                             template rebind_alloc<char>>;
(library fundamentals TS)
template< class Alloc >
class /*resource-adaptor-imp*/ : public memory_resource; // nur zur Veranschaulichung
(library fundamentals TS)

Der Alias-Template resource_adaptor passt den Allocator-Typ Alloc an eine memory_resource-Schnittstelle an. Der Allocator wird zu einem char-Werttyp re-bound, bevor er tatsächlich angepasst wird (unter Verwendung der resource-adaptor-imp-Klassenschablone), sodass die Anpassung von Spezialisierungen derselben Allocator-Schablone immer denselben Typ ergibt, unabhängig vom Werttyp, mit dem die Allocator-Schablone ursprünglich instanziiert wurde.

resource_adaptor ist im Namensraum std::experimental::pmr definiert, und der Basistyp memory_resorce auf dieser Seite ist std::experimental::pmr::memory_resource.

(library fundamentals TS)
(bis library fundamentals TS v3)

resource_adaptor ist im Namensraum std::pmr::experimental definiert, und der Basistyp memory_resorce auf dieser Seite ist std::pmr::memory_resource.

(library fundamentals TS v3)

resource-adaptor-imp ist eine Klassenschablone, deren Member unten beschrieben werden. Der Name resource-adaptor-imp dient nur zur Veranschaulichung und ist nicht normativ.

Zusätzlich zur Erfüllung der Allocator-Anforderungen muss Alloc zusätzlich die folgenden Anforderungen erfüllen:

[bearbeiten] Member-Typen von resource-adaptor-imp

Mitgliedertyp Definition
allocator_type Alloc

[bearbeiten] Member-Funktionen von resource-adaptor-imp

resource-adaptor-imp::resource-adaptor-imp

/*resource-adaptor-imp*/() = default;
(1) (library fundamentals TS)
/*resource-adaptor-imp*/(const /*resource-adaptor-imp*/& other)
    = default;
(2) (library fundamentals TS)
/*resource-adaptor-imp*/(/*resource-adaptor-imp*/&& other)
    = default;
(3) (library fundamentals TS)
explicit /*resource-adaptor-imp*/(const Alloc& a2);
(4) (library fundamentals TS)
explicit /*resource-adaptor-imp*/(Alloc&& a2);
(5) (library fundamentals TS)
1) Default-Konstruktor. Konstruiert den gewrappten Allocator standardmäßig.
2) Kopierkonstruktor. Kopiert den gewrappten Allocator aus dem von other gewrappten Allocator.
3) Move-Konstruktor. Verschiebt den gewrappten Allocator aus dem von other gewrappten Allocator.
4) Initialisiert den gewrappten Allocator mit a2.
5) Initialisiert den gewrappten Allocator mit std::move(a2).

Parameter

Sonstiges - ein anderes resource-adaptor-imp-Objekt zum Kopieren oder Verschieben
a2 - ein anderes Alloc-Objekt zum Kopieren oder Verschieben

resource-adaptor-imp::get_allocator

allocator_type get_allocator() const;
(library fundamentals TS)

Gibt eine Kopie des gewrappten Allocators zurück.

resource-adaptor-imp::operator=

/*resource-adaptor-imp*/& operator=(const /*resource-adaptor-imp*/& other)
    = default;
(library fundamentals TS)

Standardmäßiger Kopierzuweisungsoperator. Kopiert den gewrappten Allocator aus dem von other.

resource-adaptor-imp::do_allocate

protected:
virtual void* do_allocate(std::size_t bytes, std::size_t alignment);
(library fundamentals TS)

Allokiert Speicher unter Verwendung der allocate-Memberfunktion des gewrappten Allocators.

resource-adaptor-imp::do_deallocate

protected:
virtual void do_deallocate(void *p, std::size_t bytes, std::size_t alignment);
(library fundamentals TS)

Deallokiert den Speicher, auf den p zeigt, unter Verwendung der deallocate-Memberfunktion des gewrappten Allocators.

p muss mit der allocate-Memberfunktion eines Allocators, der gleich dem gewrappten Allocator ist, allokiert worden sein und darf noch nicht deallokiert worden sein.

resource-adaptor-imp::do_is_equal

protected:
virtual bool do_is_equal(const memory_resource& other) const noexcept;
(library fundamentals TS)

Sei p ein dynamic_cast<const /*resource-adaptor-imp*/*>(&other). Wenn p ein Nullzeiger ist, wird false zurückgegeben. Andernfalls wird das Ergebnis des Vergleichs der von *p und *this gewrappten Allocatoren mittels operator== zurückgegeben.