DEENESPTFRRUARHIKOZHNL

structure std::hash< ara::core::StringView >

[SWS_CORE_02189]

template <> struct hash< ara::core::StringView > final {...};

Specialization of std::hash (hashing function for ara::core::StringView)

Header-Datei#include "ara/core/string_view.h"
Forwarding-Header#include "ara/core/core_fwd.h"
Scopenamespace std

Guide utilisateurGÉNÉRÉ PAR IA

Permet le calcul de valeurs de hachage pour des objets StringView en vue d'une utilisation dans des conteneurs de hachage associatifs.
GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 1a39d5491f89 Provenance Questions ouvertes (3)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Permet le calcul de valeurs de hachage pour des objets StringView en vue d'une utilisation dans des conteneurs de hachage associatifs.

La spécialisation std::hash<ara::core::StringView> fournit la fonctionnalité normalisée de hachage pour les instances de ara::core::StringView dans l'en-tête <ara/core/string_view.h> [SWS_CORE_02190]. Via l'opérateur d'appel operator(), l'objet fonction sans état calcule de manière déterministe une valeur entière de hachage de type size_t à partir d'une référence constante transmise vers un StringView [SWS_CORE_02190]. Grâce à la déclaration stricte en tant que noexcept, l'exécution est entièrement sûre vis-à-vis des exceptions et ne lève d'erreur à aucun moment. L'appelant doit uniquement s'assurer que les données de caractères référencées par le StringView demeurent valides en mémoire pendant l'évaluation.

Contexte

La spécialisation de patron std::hash<ara::core::StringView> fournit la fonction de hachage canonique pour la référence de chaîne de caractères ara::core::StringView au sein de l'AUTOSAR Adaptive Platform. Définie dans l'en-tête <ara/core/string_view.h> [SWS_CORE_02190], elle intègre directement le type de base ara::core::StringView dans le système de types de la bibliothèque standard C++. Le rôle premier de cette structure consiste à agir comme objet fonctionnel et de hachage conforme au standard. Dans les systèmes C++ modernes et les applications AUTOSAR Adaptive qui en découlent, les algorithmes génériques et les structures de données associatives nécessitent des foncteurs de hachage standardisés. La spécialisation devrait principalement servir de fonction de hachage de clé pour des conteneurs associatifs non ordonnés tels que std::unordered_map ou std::unordered_set lorsque des instances de ara::core::StringView sont utilisées comme clés de recherche ou de correspondance. ara::core::StringView représentant une vue sans possession sur des séquences de caractères contiguës, std::hash<ara::core::StringView> collabore étroitement avec les zones de mémoire référencées sans procéder à des allocations de mémoire propres ni créer de copies du texte référencé. Question Q-781e3d2bf693742f (ouverte)

Cycle de vie

D'après sa déclaration, la structure est conçue comme une spécialisation finale template <> struct hash< ara::core::StringView > final. En ce qui concerne son cycle de vie, std::hash<ara::core::StringView> présente les propriétés d'un objet fonctionnel. L'interface ne comportant aucun membre de données, la structure devrait être totalement sans état, de sorte que les instances peuvent être créées sans gestion explicite des ressources. Question Q-17cde1f6c81fd9f1 (ouverte) L'instanciation s'effectue habituellement de façon implicite par le conteneur appelant ou de façon explicite sous forme d'objet temporaire au point d'appel. Aucun état n'étant conservé, la création est extrêmement légère et ne nécessite aucune allocation dynamique de mémoire. Une instance peut ainsi être créée, copiée ou transmise directement comme rvalue anonyme selon les besoins. La destruction du foncteur est triviale et ne requiert aucune opération de libération. Au regard de la concurrence et de la sécurité des threads, la nature sans état autorise un accès concurrent sans restriction : plusieurs threads peuvent exécuter la fonction de hachage en parallèle pour des instances de ara::core::StringView distinctes ou identiques, car aucune structure de données mutable n'est modifiée.

Parcours d'utilisation

Le cœur fonctionnel de la spécialisation se concentre sur l'opérateur d'appel operator() [SWS_CORE_02190]. L'utilisation typique s'inscrit dans le cadre d'un déroulement en deux étapes composé de l'instanciation et de l'évaluation. Un développeur ou un conteneur standard transmet une instance de ara::core::StringView par référence constante à la fonction membre operator()(ara::core::StringView const &v) const noexcept [SWS_CORE_02190]. Lors de l'évaluation, la fonction lit les données de caractères référencées par le StringView et les transforme en une valeur de hachage entière de type size_t [SWS_CORE_02190]. Le calcul concret devrait vraisemblablement reposer sur des algorithmes de hachage établis qui fournissent impérativement la même valeur size_t pour deux séquences de caractères identiques en contenu, afin de garantir l'intégrité des tables de hachage. Question Q-45be0447105133fd (ouverte) Après le calcul, la valeur résultante est directement renvoyée à l'appelant, qui l'utilise par exemple pour indexer un compartiment (bucket).

Scénarios d'erreur

En raison de sa spécification comme noexcept et de sa classification comme sûre vis-à-vis des exceptions (« exception safe ») [SWS_CORE_02190], l'appel de operator() garantit qu'aucune exception n'est levée ni ne quitte le cadre de la fonction à aucun moment. L'interface ne définit ni codes d'erreur spécifiques ni type de retour ara::core::Result, car le calcul de hachage peut être exécuté de manière déterministe pour toute instance formellement valide de StringView. Comme précondition essentielle, il incombe à l'appelant de s'assurer que la référence ara::core::StringView transmise pointe vers une zone mémoire valide. Si un StringView vide peut être haché sans problème et sans erreur, la transmission d'une vue dotée d'une zone mémoire non valide ou déjà libérée (pointeur pendant) entraîne en revanche un comportement indéfini lors de l'opération de lecture mémoire. Au niveau des postconditions, la fonction garantit que l'argument transmis demeure inchangé et qu'une valeur de hachage size_t déterministe est renvoyée [SWS_CORE_02190].

Ce guide de classe a été élaboré par un assistant d'organisation assisté par IA sur la base de la spécification AUTOSAR R25-11.

Diagramme de classes UML

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

G nstd__hash__ara__core__StringView__122 «struct» hash< ara::core::StringView > + operator()() n_core__StringView___final585 :core::StringView > final nstd__hash__ara__core__StringView__122->n_core__StringView___final585

Opérateurs

operator() fonction

Invoke the hashing function

size_t operator() (ara::core::StringView const &v) const noexcept;

Documentation des méthodes

fonction operator() [SWS_CORE_02190]

size_t operator() (ara::core::StringView const &v) const noexcept;

Invoke the hashing function

Header-Datei#include "ara/core/string_view.h"
Scopestruct std::hash< ara::core::StringView >
Exception-Sicherheitexception safe

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

Record
AUTOSAR/AP/record/SWS_CORE_02190
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CORE_02190@rel:R25-11#9fe3f978
Content hash
9fe3f978
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Core.pdf#nameddest=SWS_CORE_02190
Status: valid/unmigrated Version: rel:R25-11#5fb7ab21 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_02190@rel:R25-11#5fb7ab21
Point-in-Time History:
Recorded Revisions (3):
  • R25-11rel:R25-11#52ddc4c82026-09-30
  • R24-11rel:R24-11#55889b1d2026-10-14
  • R25-11rel:R25-11#5fb7ab212026-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