DEENESPTFRRUARHIKOZHNL

class ara::core::MemoryResource

[SWS_CORE_06500] Upstream: RS_AP_00130

class MemoryResource {...};

Implementation of std::pmr::memory_resource type from [mem.res.class]

Header-Datei#include "ara/core/memory_resource.h"
Forwarding-Header#include "ara/core/core_fwd.h"
Scopenamespace ara::core

User GuideKI-GENERIERT

Dient als Basisschnittstelle für ausnahmenfreie Speicherallokation und -freigabe.
KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: efd95fd8a941 Herkunft Offene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Dient als Basisschnittstelle für ausnahmenfreie Speicherallokation und -freigabe.

Die Klasse stellt eine abstrakte Basisschnittstelle für polymorphe Speicherressourcen bereit, die der C++-Standardschnittstelle nachempfunden ist. Über das Non-Virtual-Interface-Muster delegiert sie Allokations- und Freigabeanfragen an abgeleitete Ressourcenklassen weiter [SWS_CORE_06503]. Im Gegensatz zum C++-Standard sind sämtliche Schnittstellenfunktionen ausnahmesicher deklariert, weshalb Speicherfehler nicht per Ausnahme, sondern durch die Rückgabe eines Nullzeigers signalisiert werden [SWS_CORE_06566]. Zudem sind Allokations- und Freigabevorgänge standardmäßig nicht threadsicher ausgelegt.

Kontext

Die Klasse ara::core::MemoryResource stellt in der AUTOSAR Adaptive Platform (Modul core) eine abstrakte Basisschnittstelle für die Speicherverwaltung bereit, die an den C++-Standardtyp std::pmr::memory_resource angelehnt ist. Sie dient als gemeinsames Fundament für austauschbare Allokationsstrategien und entkoppelt aufrufende Datenstrukturen von den konkreten Mechanismen der Speicherbereitstellung. Als wesentlicher Unterschied zum ISO-C++-Standard verzichtet die AUTOSAR-Spezifikation vollständig auf dynamische Ausnahmen und formuliert für sämtliche Operationen strikte noexcept-Garantien [SWS_CORE_06501].

Die Architektur folgt dem Non-Virtual-Interface-Muster (NVI): Öffentliche, nicht-virtuelle Elementfunktionen definieren die feste Schnittstelle für Aufrufer, während das eigentliche Verhalten in abgeleiteten Klassen über private, rein virtuelle Elementfunktionen implementiert werden muss. Interpretation: Konkrete Speicherressourcen leiten von ara::core::MemoryResource ab und überschreiben die privaten Basisschnittstellen do_allocate [SWS_CORE_06566], do_deallocate [SWS_CORE_06567] sowie do_is_equal [SWS_CORE_06568], um anwendungsspezifische Puffer- oder Pool-Verwaltungen bereitzustellen. Frage Q-d09d47b0a8f6b822 (offen)

Lebenszyklus

Die Instanziierung von Spezialisierungen erfolgt über den parameterlosen Standardkonstruktor, der als noexcept=default spezifiziert ist [SWS_CORE_06501]. Ebenso stehen ein noexcept-Kopierkonstruktor [SWS_CORE_06502] und ein noexcept-Kopierzuweisungsoperator [SWS_CORE_06507] bereit. Ergänzend zum C++-Standard definiert AUTOSAR explizit einen Move-Konstruktor [SWS_CORE_06574] und einen Move-Zuweisungsoperator [SWS_CORE_06575], die beide als noexcept=default festgelegt sind.

Der Lebenszyklus polymorpher Instanzen wird durch einen virtuellen Destruktor abgesichert, der als ausnahmesicher deklariert ist [SWS_CORE_06506]. Bezüglich der Nebenläufigkeit ist zu beachten, dass sowohl der Destruktor als auch die Allokations- und Freigabefunktionen allocate [SWS_CORE_06503] und deallocate [SWS_CORE_06504] als nicht threadsicher spezifiziert sind. Interpretation: Für thread-sichere Allokationen und Freigaben dürften übergeordnete Synchronisationsmechanismen oder spezialisierte Unterklassen zuständig sein, da die Basismethoden als nicht thread-sicher spezifiziert sind. Frage Q-adac4b6cf6e0db7c (offen) Die Gleichheitsprüfung via is_equal ist hingegen explizit threadsicher ausgelegt [SWS_CORE_06505].

Nutzungspfad

Der primäre Ablauf bei der Speicherverwaltung besteht aus der Anforderung, der optionalen Identitätsprüfung und der anschließenden Freigabe von Speicherblöcken über die öffentliche NVI-Schnittstelle:

  • Speicherallokation: Der Aufrufer ruft allocate unter Angabe der Bytegröße und der optionalen Ausrichtung auf [SWS_CORE_06503]. Die Methode delegiert intern an die private rein virtuelle Funktion do_allocate der konkreten Klasse [SWS_CORE_06566].
  • Gleichheitsprüfung: Um festzustellen, ob zwei Speicherressourcen zueinander äquivalent sind und Speicher der einen durch die andere freigegeben werden kann, ruft der Nutzer is_equal auf [SWS_CORE_06505], was an do_is_equal delegiert [SWS_CORE_06568].
  • Speicherfreigabe: Nach Abschluss der Nutzung wird der Block über deallocate unter Angabe des Zeigers, der Bytegröße und des Alignments zurückgegeben [SWS_CORE_06504], wodurch die interne Weiterleitung an do_deallocate erfolgt [SWS_CORE_06567].
NVI-Aufrufdelegation bei Speicherallokation und -freigabeAufruferMemoryResourceKonkreteResourceUse Case: Speicherallokationallocate(bytes, alignment)do_allocate(bytes, alignment)altAllokation erfolgreichSpeicherzeigerSpeicherzeiger pAllokation fehlgeschlagennullptrnullptrUse Case: Speicherfreigabedeallocate(p, bytes, alignment)do_deallocate(p, bytes, alignment)RückkehrRückkehr

Sequenzdiagramm: Aufrufdelegation über das NVI-Muster bei Allokation und Freigabe. Quellen: [SWS_CORE_06503], [SWS_CORE_06504], [SWS_CORE_06566], [SWS_CORE_06567]

Fehlerszenarien

Ein zentrales Merkmal der Klasse ist die vollständige Verbannung von Ausnahmen. Während der ISO-C++-Standard im Erschöpfungsfall eine Ausnahme vom Typ std::bad_alloc vorsieht, weicht AUTOSAR hiervon gezielt ab: Schlägt eine Allokation in allocate bzw. do_allocate fehl, liefert die Funktion zwingend nullptr zurück [SWS_CORE_06503], [SWS_CORE_06566]. Durch das Attribut [[nodiscard]] an allocate wird der Aufrufer angehalten, den Rückgabewert stets entgegenzunehmen und vor dem Zugriff auf Gültigkeit zu prüfen.

Für die Freigabeoperationen deallocate und do_deallocate gilt, dass etwaige Fehler bei der Rückgabe des Speichers stillschweigend ignoriert werden [SWS_CORE_06504], [SWS_CORE_06567]. Es werden weder Ausnahmen geworfen noch Fehlercodes zurückgegeben, was die Einhaltung harter Echtzeit- und Sicherheitsanforderungen im adaptiven Plattformkontext erleichtert.

Dieser Text wurde von einer KI kuratiert und basiert ausschließlich auf den Spezifikationen der AUTOSAR Adaptive Platform R25-11.

Mitgliederkarte

Konstruktoren und Destruktor

2

Operatoren

1

Klassendiagramm

Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.

G nara__core__MemoryResource130 MemoryResource + MemoryResource() + operator=() + ~MemoryResource() + allocate() + deallocate() + is_() + do_() nara__core__MonotonicBufferResource118 MonotonicBufferResource nara__core__MonotonicBufferResource118->nara__core__MemoryResource130 nara__core__SynchronizedPoolResource481 SynchronizedPoolResource nara__core__SynchronizedPoolResource481->nara__core__MemoryResource130 nara__core__UnsynchronizedPoolResource176 UnsynchronizedPoolResource nara__core__UnsynchronizedPoolResource176->nara__core__MemoryResource130

Detailansicht

Wähle in der Gliederung einen Eintrag aus.

Konstruktoren und Destruktor

MemoryResource function 3

except for the following deviations: 1. The function is noexcept ≙ [mem.res]

Überladungen MemoryResource 3
MemoryResource () noexcept=default; SWS_CORE_06501
MemoryResource (const MemoryResource &other) noexcept=default; SWS_CORE_06502
MemoryResource (MemoryResource &&other) noexcept=default; SWS_CORE_06574

except for the following deviations: 1. The function is noexcept ≙ [mem.res]

virtual ~MemoryResource () noexcept;

Methoden

allocate function

except for the following deviations: 1. The function is noexcept 2. The function returns nullptr instead of (potentially) throwing a std::bad_alloc exception ≙ std::bad_alloc

[[nodiscard]] void * allocate (std::size_t bytes, std::size_t alignment=alignof(std::max_align_t)) noexcept;
deallocate function

except for the following deviations: 1. The function is noexcept 2. If unsuccessful: errors will be silently ignored ≙ [mem.res]

void deallocate (void *p, std::size_t bytes, std::size_t alignment=max_align) noexcept;
do_ function 3

in [15] except for the following deviations: 1. The function is noexcept 2. The function returns nullptr instead of (potentially) throwing a std::bad_alloc exception ≙ std::bad_alloc

Überladungen do_ 3
virtual void * do_allocate (std::size_t bytes, std::size_t alignment) noexcept=0; SWS_CORE_06566
virtual void do_deallocate (void *p, std::size_t bytes, std::size_t alignment) noexcept=0; SWS_CORE_06567
virtual bool do_is_equal (const MemoryResource &other) const noexcept=0; SWS_CORE_06568
is_ function

≙ [mem.res]

bool is_equal (const MemoryResource &other) const noexcept;

Operatoren

operator= function 2

except for the following deviations: 1. The function is noexcept ≙ [mem.res]

Überladungen = 2
MemoryResource & operator= (const MemoryResource &other) noexcept=default; SWS_CORE_06507
MemoryResource & operator= (MemoryResource &&other) noexcept=default; SWS_CORE_06575

Dokumentation der Methoden

function MemoryResource [SWS_CORE_06501]

MemoryResource () noexcept=default;

As per corresponding usage in [mem.res] except for the following deviations: 1. The function is noexcept

Header-Datei#include "ara/core/memory_resource.h"
Scopeclass ara::core::MemoryResource
Exception-Sicherheitexception safe

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CORE_06501
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CORE_06501@rel:R25-11#9befd404
Content hash
9befd404
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Core.pdf#nameddest=SWS_CORE_06501
Status: valid/unmigrated Version: rel:R25-11#b9f1b788 Versionshistorie & Revisions (1 transition, 4 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CORE_06501@rel:R25-11#b9f1b788
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#9befd4042026-09-30
  • R23-11rel:R23-11#f033a21e2026-10-14
  • R24-11rel:R24-11#fd91462c2026-10-14
  • R25-11rel:R25-11#b9f1b7882026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function MemoryResource [SWS_CORE_06502] Upstream: RS_AP_00130

MemoryResource (const MemoryResource &other) noexcept=default;

As per corresponding usage in [mem.res] except for the following deviations: 1. The function is noexcept

Header-Datei#include "ara/core/memory_resource.h"
Scopeclass ara::core::MemoryResource
Exception-Sicherheitexception safe

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CORE_06502
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CORE_06502@rel:R25-11#54ec446b
Content hash
54ec446b
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Core.pdf#nameddest=SWS_CORE_06502
Status: valid/unmigrated Version: rel:R25-11#c99831b9 Versionshistorie & Revisions (1 transition, 4 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CORE_06502@rel:R25-11#c99831b9
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#54ec446b2026-09-30
  • R23-11rel:R23-11#0d9d49792026-10-14
  • R24-11rel:R24-11#95d8ae9e2026-10-14
  • R25-11rel:R25-11#c99831b92026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function MemoryResource [SWS_CORE_06574] Upstream: RS_AP_00145

MemoryResource (MemoryResource &&other) noexcept=default;

[AUTOSAR defined] not present in ISO-14882. Move constructor

Header-Datei#include "ara/core/memory_resource.h"
Scopeclass ara::core::MemoryResource
Exception-Sicherheitexception safe

Parameter (in)

ParameterBeschreibung
otherother MemoryResource to move from

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CORE_06574
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CORE_06574@rel:R25-11#265cf3bf
Content hash
265cf3bf
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Core.pdf#nameddest=SWS_CORE_06574
Status: valid/unmigrated Version: rel:R25-11#95490182 Versionshistorie & Revisions (1 transition, 3 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CORE_06574@rel:R25-11#95490182
Point-in-Time History:
Recorded Revisions (3):
  • R25-11rel:R25-11#265cf3bf2026-09-30
  • R24-11rel:R24-11#ab47979b2026-10-14
  • R25-11rel:R25-11#954901822026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function allocate [SWS_CORE_06503]

[[nodiscard]] void * allocate (std::size_t bytes, std::size_t alignment=alignof(std::max_align_t)) noexcept;

As per corresponding usage in [mem.res] except for the following deviations: 1. The function is noexcept 2. The function returns nullptr instead of (potentially) throwing a std::bad_alloc exception

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 6735dc6d085f Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Elementfunktion allocate der Klasse ara::core::MemoryResource dient der Allokation von linearem Speicher mit vorgegebener Bytegröße und Ausrichtung [SWS_CORE_06503]. Sie orientiert sich an der C++-Standardschnittstelle [mem.res], weicht jedoch in der Ausnahmebehandlung maßgeblich ab [SWS_CORE_06503].

Verwendung und Parameter

Der Aufruf erfolgt synchron über die Parameter bytes (Anzahl der anzufordernden Bytes) und das optionale alignment, welches standardmäßig auf alignof(std::max_align_t) gesetzt ist [SWS_CORE_06503]. Der Rückgabewert ist mit dem Attribut [[nodiscard]] versehen, weshalb der gelieferte Zeiger vom Typ void* im Aufrufer zwingend ausgewertet werden muss [SWS_CORE_06503].

Fehlerbehandlung und Exception-Sicherheit

Im Gegensatz zum Standardverhalten wirft die Funktion im Fehlerfall keine Ausnahme des Typs std::bad_alloc, sondern ist als noexcept deklariert und gilt als ausnahmesicher (exception safe) [SWS_CORE_06503]:

  • Erfolg: Liefert einen gültigen Zeiger auf den allokierten Speicherbereich gemäß [mem.res] [SWS_CORE_06503].
  • Fehlschlag: Schlägt die Speicherzuweisung fehl, gibt die Funktion stattdessen nullptr zurück [SWS_CORE_06503]. Der Aufrufer muss das Ergebnis daher stets explizit auf einen Nullzeiger prüfen.

Nebenläufigkeit und Zusammenspiel

Die Funktion ist als nicht threadsicher (not thread-safe) spezifiziert [SWS_CORE_06503]. Parallele Aufrufe auf derselben Instanz von MemoryResource erfordern folglich eine externe Synchronisation durch den Aufrufer. Dieses fehlertolerante, ausnahmefreie Muster findet sich konsistent in weiteren Speicherkomponenten von AUTOSAR Adaptive: So nutzt ara::core::PolymorphicAllocator::allocate denselben Ansatz ohne Exceptions [SWS_CORE_06547], und auch die spezielle Instanz NullMemoryResource signalisiert Speichererschöpfung durch Rückgabe von nullptr [SWS_CORE_06563].

Dieser Verwendungshinweis wurde automatisiert auf Basis der AUTOSAR-Spezifikation R25-11 generiert.

Header-Datei#include "ara/core/memory_resource.h"
Scopeclass ara::core::MemoryResource
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Rückgabewert

TypBeschreibung
void *• If successful: As per corresponding usage in [mem.res] • If unsuccessful: the returned pointer shall be nullptr

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CORE_06503
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CORE_06503@rel:R25-11#1fa3c319
Content hash
1fa3c319
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Core.pdf#nameddest=SWS_CORE_06503
Status: valid/unmigrated Version: rel:R25-11#8ff560e7 Versionshistorie & Revisions (1 transition, 4 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CORE_06503@rel:R25-11#8ff560e7
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#1fa3c3192026-09-30
  • R23-11rel:R23-11#a898640f2026-10-14
  • R24-11rel:R24-11#f8eb1c392026-10-14
  • R25-11rel:R25-11#8ff560e72026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function deallocate [SWS_CORE_06504]

void deallocate (void *p, std::size_t bytes, std::size_t alignment=max_align) noexcept;

As per corresponding usage in [mem.res] except for the following deviations: 1. The function is noexcept 2. If unsuccessful: errors will be silently ignored

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 65d739156bbe Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Funktion deallocate der Klasse ara::core::MemoryResource dient der Freigabe von Speicherbereichen gemäß [SWS_CORE_06504]. Die Verwendung folgt grundsätzlich dem Standardverhalten aus [mem.res], weist jedoch spezifische Abweichungen auf. Der Aufruf erfolgt synchron über die Signatur void deallocate(void *p, std::size_t bytes, std::size_t alignment=max_align) noexcept, wobei der Zeiger p auf den freizugebenden Block, die Größe bytes sowie optional das Alignment übergeben werden [SWS_CORE_06504].

Hinsichtlich des Fehlerverhaltens ist die Funktion als noexcept und exceptionsicher (exception safe) spezifiziert [SWS_CORE_06504]. Schlägt die Freigabe fehl, werden Fehler stillschweigend ignoriert (errors will be silently ignored) [SWS_CORE_06504]. Es werden keine Exceptions geworfen und keine Fehlermeldungen über DET oder DEM ausgegeben.

Bezüglich der Nebenläufigkeit ist die Funktion ausdrücklich als nicht threadsicher (not thread-safe) eingestuft [SWS_CORE_06504]. Gleichzeitige Zugriffe auf dieselbe Ressourcen-Instanz müssen daher vom Aufrufer extern synchronisiert werden.

Im Zusammenspiel mit dem Allokatorkonzept korrespondiert diese Funktion mit der typisierten Schnittstelle deallocate der Klasse ara::core::PolymorphicAllocator aus [SWS_CORE_06548], welche ähnliche Abweichungen bezüglich noexcept und stillschweigender Fehlerbehandlung aufweist.

Dieser Nutzungshinweis wurde automatisch durch einen KI-Kurations-Assistenten erstellt und basiert ausschließlich auf den Spezifikationsdaten von AUTOSAR R25-11.

Header-Datei#include "ara/core/memory_resource.h"
Scopeclass ara::core::MemoryResource
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CORE_06504
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CORE_06504@rel:R25-11#9fe074b5
Content hash
9fe074b5
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Core.pdf#nameddest=SWS_CORE_06504
Status: valid/unmigrated Version: rel:R25-11#6dfbadd7 Versionshistorie & Revisions (1 transition, 4 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CORE_06504@rel:R25-11#6dfbadd7
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#9fe074b52026-09-30
  • R23-11rel:R23-11#99cc78692026-10-14
  • R24-11rel:R24-11#8ebb7f8c2026-10-14
  • R25-11rel:R25-11#6dfbadd72026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function do_ [SWS_CORE_06566]

virtual void * do_allocate (std::size_t bytes, std::size_t alignment) noexcept=0;

As per corresponding usage in [mem.res] in [15] except for the following deviations: 1. The function is noexcept 2. The function returns nullptr instead of (potentially) throwing a std::bad_alloc exception

Literaturverzeichnis SWS Core: [15] ISO/IEC 14882:2020, Programming languages – C++ – www.iso.org

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: fa83e476b05d Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die rein virtuelle Methode do_allocate der Klasse ara::core::MemoryResource dient der Allokation von Speicherblöcken mit vorgegebener Bytegröße und Ausrichtung [SWS_CORE_06566]. Als Parameter übernimmt sie die Anzahl der Bytes (bytes) sowie das geforderte Alignment (alignment). Bei erfolgreicher Zuweisung liefert sie synchron einen Zeiger vom Typ void * auf den reservierten Speicherbereich zurück [SWS_CORE_06566].

In Bezug auf die Fehlerbehandlung weicht die Funktion gezielt vom regulären C++-Standard ab: Sie ist als noexcept deklariert und wirft bei Fehlschlägen keine std::bad_alloc-Ausnahme, sondern liefert stattdessen nullptr zurück [SWS_CORE_06566]. Aufrufer müssen das Allokationsergebnis daher stets auf einen Nullzeiger prüfen.

Hinsichtlich der Nebenläufigkeit ist die Methode als not thread-safe spezifiziert [SWS_CORE_06566]. Parallele Aufrufe über dieselbe Instanz bedürfen einer externen Synchronisation, sofern die abgeleitete Implementierung keinen eigenen Schutz vorsieht. Aufgrund der privaten Sichtbarkeit dürfte der Aufruf durch Nutzer typischerweise indirekt über die übergeordnete Schnittstelle der Basisklasse erfolgen. Frage Q-5cbdabf121ed4550 (offen)

Im Zusammenspiel der Speicherverwaltung bildet die Methode das direkte Gegenstück zu do_deallocate, welches für die Freigabe des allokierten Speichers zuständig ist und Fehler stillschweigend ignoriert [SWS_CORE_06567]. Die Vergleichsfunktion do_is_equal prüft darüber hinaus, ob zwei Ressourceninstanzen bezüglich Allokation und Freigabe zueinander kompatibel sind [SWS_CORE_06568].

Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation generiert.

Header-Datei#include "ara/core/memory_resource.h"
Scopeclass ara::core::MemoryResource
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe
Sichtbarkeitprivate

Rückgabewert

TypBeschreibung
void *• If successful: As per corresponding usage in [mem.res] • If unsuccessful: the returned pointer shall be nullptr

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CORE_06566
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CORE_06566@rel:R25-11#b88f7855
Content hash
b88f7855
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Core.pdf#nameddest=SWS_CORE_06566
Status: valid/unmigrated Version: rel:R25-11#f000b35f Versionshistorie & Revisions (1 transition, 3 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CORE_06566@rel:R25-11#f000b35f
Point-in-Time History:
Recorded Revisions (3):
  • R25-11rel:R25-11#b88f78552026-09-30
  • R24-11rel:R24-11#1a8107de2026-10-14
  • R25-11rel:R25-11#f000b35f2026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function do_ [SWS_CORE_06567]

virtual void do_deallocate (void *p, std::size_t bytes, std::size_t alignment) noexcept=0;

As per corresponding usage in [mem.res] except for the following deviations: 1. The function is noexcept 2. If unsuccessful: errors will be silently ignored

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: fca1a9bccecb Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die rein virtuelle Elementfunktion do_deallocate der Klasse ara::core::MemoryResource (deklariert in ara/core/memory_resource.h) dient gemäß [SWS_CORE_06567] der Freigabe zuvor reservierten Speichers. Sie nimmt den Zeiger p auf den Speicherbereich sowie dessen Größe bytes und geforderte Ausrichtung alignment entgegen. Die Semantik entspricht grundsätzlich dem C++-Standard [mem.res], weist jedoch zwei maßgebliche adaptive-spezifische Abweichungen auf [SWS_CORE_06567].

Erstens ist die Funktion als noexcept deklariert und garantiert Ausnahme-Sicherheit (exception safe) [SWS_CORE_06567]. Zweitens werden etwaige Fehler während der Freigabe stillschweigend ignoriert, sodass fehlgeschlagene Operationen weder Fehlermeldungen auslösen noch den Programmfluss unterbrechen dürfen [SWS_CORE_06567].

Hinsichtlich der Nebenläufigkeit ist do_deallocate als not thread-safe spezifiziert und besitzt private Sichtbarkeit [SWS_CORE_06567]. Als Implementierungsdetail einer polymorphen Speicherressource dürfte sie synchron über die übergeordnete öffentliche Aufrufschnittstelle ausgeführt werden. Frage Q-3f97e122ee7fb281 (offen) Konkurrierende Freigaben auf derselben Ressource müssen von ableitenden Klassen bei Bedarf eigenständig synchronisiert werden.

Im Modul core bildet die Funktion das Gegenstück zur Allokation do_allocate [SWS_CORE_06566], welche im Fehlerfall nullptr anstelle einer Exception liefert. Der Vergleich mit anderen Ressourcen erfolgt über die Methode do_is_equal [SWS_CORE_06568], die im Gegensatz zur Deallokation explizit als thread-safe definiert ist.

Dieser Nutzungshinweis wurde automatisch auf Basis der Spezifikation von AUTOSAR R25-11 generiert.

Header-Datei#include "ara/core/memory_resource.h"
Scopeclass ara::core::MemoryResource
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe
Sichtbarkeitprivate

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CORE_06567
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CORE_06567@rel:R25-11#7bf9805c
Content hash
7bf9805c
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Core.pdf#nameddest=SWS_CORE_06567
Status: valid/unmigrated Version: rel:R25-11#d951e36f Versionshistorie & Revisions (1 transition, 3 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CORE_06567@rel:R25-11#d951e36f
Point-in-Time History:
Recorded Revisions (3):
  • R25-11rel:R25-11#7bf9805c2026-09-30
  • R24-11rel:R24-11#3e71af902026-10-14
  • R25-11rel:R25-11#d951e36f2026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function do_ [SWS_CORE_06568]

virtual bool do_is_equal (const MemoryResource &other) const noexcept=0;

As per corresponding usage in [mem.res]

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: c0f1ba532a98 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die rein virtuelle Elementfunktion do_is_equal wird im Header #include "ara/core/memory_resource.h" im Namensraum von ara::core::MemoryResource deklariert ([SWS_CORE_06568]). Sie dient gemäß der C++-Spezifikation [mem.res] dem synchronen Vergleich der aktuellen Speicherressource mit einer übergebenen Referenz const MemoryResource &other auf Gleichheit ([SWS_CORE_06568]). Da die Methode mit privater Sichtbarkeit (private) definiert ist, dürfte ihr Aufruf als Implementierungsdetail polymorph über die öffentliche Schnittstelle der Klasse ara::core::MemoryResource abgewickelt werden ([SWS_CORE_06568]). Frage Q-cbe02f652b43d6ec (offen)

Hinsichtlich Ausführung und Fehlersicherheit ist do_is_equal als exception safe sowie noexcept deklariert ([SWS_CORE_06568]). Sie darf demnach unter keinen Umständen Ausnahmen werfen und signalisiert das Ergebnis direkt über den booleschen Rückgabewert ([SWS_CORE_06568]). Zudem ist die Methode als thread-safe spezifiziert, sodass abgeleitete Implementierungen auch bei nebenläufigen Vergleichen Thread-Sicherheit gewährleisten müssen ([SWS_CORE_06568]).

Im Zusammenspiel mit den übrigen virtuellen Methoden der Speicherverwaltung komplettiert do_is_equal das Trio der Anpassungspunkte abgeleiteter Ressourcenklassen ([SWS_CORE_06568]). Während die Speicherzuweisung do_allocate im Fehlerfall nullptr liefert ([SWS_CORE_06566]) und do_deallocate Fehler stillschweigend ignoriert ([SWS_CORE_06567]), sind beide Funktionen im Gegensatz zu do_is_equal als nicht threadsicher (not thread-safe) ausgewiesen ([SWS_CORE_06566], [SWS_CORE_06567]). Dies unterstreicht die besondere Anforderung an do_is_equal, nebenläufige Ressourcenvergleiche abzusichern ([SWS_CORE_06568]).

Dieser Text wurde von einer KI generiert und dient als Verwendungshinweis auf Basis der AUTOSAR-Spezifikation.

Header-Datei#include "ara/core/memory_resource.h"
Scopeclass ara::core::MemoryResource
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe
Sichtbarkeitprivate

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CORE_06568
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CORE_06568@rel:R25-11#6efe7dbb
Content hash
6efe7dbb
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Core.pdf#nameddest=SWS_CORE_06568
Status: valid/unmigrated Version: rel:R25-11#2eae7169 Versionshistorie & Revisions (1 transition, 3 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CORE_06568@rel:R25-11#2eae7169
Point-in-Time History:
Recorded Revisions (3):
  • R25-11rel:R25-11#6efe7dbb2026-09-30
  • R24-11rel:R24-11#111ffd482026-10-14
  • R25-11rel:R25-11#2eae71692026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function is_ [SWS_CORE_06505]

bool is_equal (const MemoryResource &other) const noexcept;

As per corresponding usage in [mem.res]

Header-Datei#include "ara/core/memory_resource.h"
Scopeclass ara::core::MemoryResource
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CORE_06505
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CORE_06505@rel:R25-11#1cb79817
Content hash
1cb79817
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Core.pdf#nameddest=SWS_CORE_06505
Status: valid/unmigrated Version: rel:R25-11#fe89774e Versionshistorie & Revisions (1 transition, 4 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CORE_06505@rel:R25-11#fe89774e
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#1cb798172026-09-30
  • R23-11rel:R23-11#f33063dc2026-10-14
  • R24-11rel:R24-11#657307fe2026-10-14
  • R25-11rel:R25-11#fe89774e2026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function operator= [SWS_CORE_06507] Upstream: RS_AP_00130

MemoryResource & operator= (const MemoryResource &other) noexcept=default;

As per corresponding usage in [mem.res] except for the following deviations: 1. The function is noexcept

Header-Datei#include "ara/core/memory_resource.h"
Scopeclass ara::core::MemoryResource
Exception-Sicherheitexception safe

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CORE_06507
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CORE_06507@rel:R25-11#653993ea
Content hash
653993ea
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Core.pdf#nameddest=SWS_CORE_06507
Status: valid/unmigrated Version: rel:R25-11#63abe892 Versionshistorie & Revisions (1 transition, 4 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CORE_06507@rel:R25-11#63abe892
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#653993ea2026-09-30
  • R23-11rel:R23-11#af6672232026-10-14
  • R24-11rel:R24-11#85add1f52026-10-14
  • R25-11rel:R25-11#63abe8922026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function operator= [SWS_CORE_06575] Upstream: RS_AP_00145

MemoryResource & operator= (MemoryResource &&other) noexcept=default;

[AUTOSAR defined] not present in ISO-14882. Move assignment operator

Header-Datei#include "ara/core/memory_resource.h"
Scopeclass ara::core::MemoryResource
Exception-Sicherheitexception safe

Parameter (in)

ParameterBeschreibung
otherother MemoryResource to move from

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CORE_06575
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CORE_06575@rel:R25-11#948a97b3
Content hash
948a97b3
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Core.pdf#nameddest=SWS_CORE_06575
Status: valid/unmigrated Version: rel:R25-11#8fb64462 Versionshistorie & Revisions (1 transition, 3 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CORE_06575@rel:R25-11#8fb64462
Point-in-Time History:
Recorded Revisions (3):
  • R25-11rel:R25-11#948a97b32026-09-30
  • R24-11rel:R24-11#617a865d2026-10-14
  • R25-11rel:R25-11#8fb644622026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function ~MemoryResource [SWS_CORE_06506]

virtual ~MemoryResource () noexcept;

As per corresponding usage in [mem.res] except for the following deviations: 1. The function is noexcept

Header-Datei#include "ara/core/memory_resource.h"
Scopeclass ara::core::MemoryResource
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CORE_06506
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CORE_06506@rel:R25-11#1cb78828
Content hash
1cb78828
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Core.pdf#nameddest=SWS_CORE_06506
Status: valid/unmigrated Version: rel:R25-11#2e224948 Versionshistorie & Revisions (1 transition, 4 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CORE_06506@rel:R25-11#2e224948
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#1cb788282026-09-30
  • R23-11rel:R23-11#2af784a02026-10-14
  • R24-11rel:R24-11#5a037c852026-10-14
  • R25-11rel:R25-11#2e2249482026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill