namespace std
User GuideAI-GEGENEREERD
Maakt de integratie mogelijk van ara::core-typen in standaardcontainers en taalelementen van de C++-standaardbibliotheek.
Maakt de integratie mogelijk van ara::core-typen in standaardcontainers en taalelementen van de C++-standaardbibliotheek.
De namespace std stelt in de module core template-specialisaties van std::hash, std::tuple_size en std::tuple_element beschikbaar voor datatypen van het AUTOSAR Adaptive Platform. Dit maakt het directe gebruik mogelijk van typen zoals ara::core::String, ara::core::Optional, ara::core::Variant, ara::core::Vector en ara::core::Array in standaardcontainers en met C++-tuple-taalelementen. Randvoorwaarde is dat bij geneste typen de ingesloten datatypen tijdens compileertijd eveneens over geldige specialisaties moeten beschikken.
Context
In de module core van het AUTOSAR Adaptive Platform dient de namespace std voor de naadloze integratie van platformspecifieke basistypen in de C++-standaardbibliotheek. In plaats van nieuwe typen te introduceren, stelt de namespace gerichte template-specialisaties van gestandaardiseerde hulpklassen beschikbaar. De interactiepartners omvatten drie essentiële componenten: de generieke typen van de C++-standaardbibliotheek (in het bijzonder ongeordende associatieve containers en tuple-hulpmiddelen), de template-specialisaties binnen std en de in module core gedefinieerde datatypen ara::core::Array, ara::core::Monostate, ara::core::Optional, ara::core::String, ara::core::StringView, ara::core::Variant en ara::core::Vector.
Contextdiagram: samenspel van standaardcontainers, de specialisaties in std en de ara::core-typen. Bronnen: payload-declaraties van de module core
De specialisaties van std::hash maken het mogelijk om adaptieve kern-datatypen direct in te zetten als sleutels in standaardcontainers zoals std::unordered_map of std::unordered_set. Parallel daaraan breiden de specialisaties std::tuple_size en std::tuple_element voor ara::core::Array de ondersteuning uit voor gestandaardiseerde metaprogrammeer-interfaces en taalelementen.
Gebruikspad
Een typisch gebruikspad begint met het gebruik van een ara::core-datatype in generieke C++-code. Een toepassing declareert bijvoorbeeld een hashtabel met sleutels van het type ara::core::String of ara::core::Optional<T>. Bij het invoegen, verwijderen of opzoeken benadert de container impliciet std::hash<ara::core::String> resp. std::hash<ara::core::Optional<T>> om de hashwaarde van de sleutel te bepalen.
De specialisaties dekken verschillende datastructuren af:
- Tekenreeksen en views:
std::hash<ara::core::String>enstd::hash<ara::core::StringView>berekenen hashwaarden over de ingesloten tekenreeks. - Samengestelde typen:
std::hash<ara::core::Optional<T>>,std::hash<ara::core::Variant<...>>enstd::hash<ara::core::Vector<T, Allocator>>maken het hashen van complexe typestructuren mogelijk. Interpretatie: De specialisaties voorara::core::Optionalenara::core::Variantsluiten vermoedelijk aan bij het semantische gedrag van de gestandaardiseerde voorbeelden en genereren deterministische waarden voor lege of niet-ingevulde toestanden. Vraag Q-c432b06f0ba32c5e (open) - Toestandloze typen:
std::hash<ara::core::Monostate>biedt een hashfunctie voor lege toestanden, zoals typisch gebruikt in varianten. - Tuple-protocol: Voor vaste datavelden levert
std::tuple_size<ara::core::Array<T, N>>tijdens compileertijd het aantal elementen, terwijlstd::tuple_element<I, ara::core::Array<T, N>>het datatype van positieIbepaalt. Interpretatie: De specialisaties vanstd::tuple_sizeenstd::tuple_elementmaken daarmee vermoedelijk het gebruik vanara::core::Arraymet structured bindings mogelijk. Vraag Q-3abb70390e67dbce (open)
Foutscenario's
Aangezien de elementen in de namespace std uitsluitend template-specialisaties betreffen, treden foutscenario's voornamelijk op tijdens compileertijd. Typische probleemconstellaties zijn:
- Ontbrekende hashfunctionaliteit van de basistypen: Als
std::hashwordt geïnstantieerd voor een genest type zoalsara::core::Optional<T>ofara::core::Vector<T, Allocator>, moet voor het elementtypeTeveneens een geldige specialisatie vanstd::hashaanwezig zijn. Ontbreekt deze, dan leidt dit tot een compileerfout. - Ongeldige indexering in het tuple-protocol: Toegang tot
std::tuple_element<I, ara::core::Array<T, N>>met een indexI >= Nschendt de precondition van het template en breekt het compilatieproces af.
Interpretatie: Foutscenario's blijven vermoedelijk in hoofdzaak beperkt tot compileertijdfouten bij onvolledige typespecialisaties of statische bereikschendingen, aangezien het specificatie-uittreksel geen runtime-foutcodes of exceptie-interfaces definieert. Vraag Q-8cda269c72bd701c (open)
Deze handleiding is uitsluitend gebaseerd op de gedeclareerde klassespecialisaties van de module core voor release R25-11.
Themakaart
Klassendiagram
Abgerundete Rahmen = Namespace- bzw. Klassen-Scopes; hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); graue Boxen = namespace-fremde bzw. externe Basisklassen. Klicken öffnet die jeweilige Klassen- bzw. cppreference-Seite.
Geen elementgegevens voor deze release
Klassen
Specialization of std::hash (hashing function for ara::core::Monostate) ≙ std::hash
Specialisaties hash< ara::core::Optional< T > hash< ara::core::String > hash< ara::core::StringView > hash< ara::core::Variant< hash< ara::core::Vector< T, Allocator > >
≙ [array]
≙ [array]
gemini-3.8-flash-low· 2026-10-13 · Duits origineel