DEENESPTFRRUARHIKOZHNL

структура 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

Руководство пользователяСОЗДАНО ИИ

Позволяет вычислять хэш-значения для объектов StringView для использования в ассоциативных хэш-контейнерах.
СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 1a39d5491f89 Происхождение Открытые вопросы (3)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Позволяет вычислять хэш-значения для объектов StringView для использования в ассоциативных хэш-контейнерах.

Специализация std::hash<ara::core::StringView> предоставляет стандартизированную функциональность хэширования для экземпляров ara::core::StringView в заголовочном файле <ara/core/string_view.h> [SWS_CORE_02190]. Через оператор вызова operator() функциональный объект без состояния детерминированно вычисляет целочисленное хэш-значение типа size_t из переданной константной ссылки на StringView [SWS_CORE_02190]. Благодаря строгому объявлению как noexcept выполнение полностью безопасно относительно исключений и ни в какой момент времени не генерирует ошибок. Вызывающая сторона должна лишь гарантировать, что данные символов, на которые ссылается StringView, остаются действительными в памяти во время вычисления.

Контекст

Специализация шаблона std::hash<ara::core::StringView> предоставляет каноническую функцию хэширования для ссылки на строку символов ara::core::StringView в рамках AUTOSAR Adaptive Platform. Определенная в заголовочном файле <ara/core/string_view.h> [SWS_CORE_02190], она напрямую интегрирует базовый тип ara::core::StringView в систему типов стандартной библиотеки C++. Основная роль этой структуры заключается в действии в качестве соответствующего стандарту функционального объекта и объекта хэширования. В современных системах C++ и построенных на их основе приложениях AUTOSAR Adaptive обобщенным алгоритмам и ассоциативным структурам данных требуются стандартизированные хэш-функторы. Специализация, вероятно, в первую очередь служит хэш-функцией ключа для неупорядоченных ассоциативных контейнеров, таких как std::unordered_map или std::unordered_set, когда экземпляры ara::core::StringView используются в качестве ключей поиска или сопоставления. Вопрос Q-781e3d2bf693742f (открытый) Поскольку ara::core::StringView представляет собой невизуальное представление без владения на непрерывные последовательности символов, std::hash<ara::core::StringView> тесно взаимодействует со ссылочными областями памяти, не выполняя собственных выделений памяти и не создавая копий текста, на который указывает ссылка.

Жизненный цикл

Структура согласно своему объявлению спроектирована как финальная специализация template <> struct hash< ara::core::StringView > final. В отношении жизненного цикла std::hash<ara::core::StringView> обладает свойствами функционального объекта. Поскольку интерфейс не содержит членов данных, структура, вероятно, полностью не имеет состояния, что позволяет создавать экземпляры без явного управления ресурсами. Вопрос Q-17cde1f6c81fd9f1 (открытый) Инстанцирование обычно происходит неявно вызывающим контейнером или явно в виде временного объекта в точке вызова. Поскольку состояния не сохраняются, создание является чрезвычайно легковесным и не требует никакого динамического выделения памяти. Таким образом, экземпляр может при необходимости создаваться, копироваться или передаваться напрямую как неименованное rvalue-значение. Уничтожение функтора тривиально и не требует операций освобождения. С точки зрения параллелизма и потокобезопасности характер без сохранения состояния допускает неограниченный параллельный доступ: несколько потоков могут выполнять хэш-функцию параллельно для различных или идентичных экземпляров ara::core::StringView, поскольку никакие изменяемые структуры данных не модифицируются.

Путь использования

Функциональное ядро специализации сосредоточено в операторе вызова operator() [SWS_CORE_02190]. Типичное использование осуществляется в рамках двухэтапного процесса, состоящего из инстанцирования и вычисления. Разработчик или стандартный контейнер передает экземпляр ara::core::StringView по константной ссылке функции-члену operator()(ara::core::StringView const &v) const noexcept [SWS_CORE_02190]. При вычислении функция считывает символьные данные, на которые ссылается StringView, и преобразует их в целочисленное хэш-значение типа size_t [SWS_CORE_02190]. Конкретное вычисление, предположительно, базируется на признанных алгоритмах хэширования, которые для двух идентичных по содержанию последовательностей символов обязательно возвращают одинаковое значение size_t, чтобы гарантировать целостность хэш-таблиц. Вопрос Q-45be0447105133fd (открытый) После вычисления результирующее значение возвращается непосредственно вызывающей стороне, которая использует его, например, для индексации корзины.

Сценарии ошибок

Благодаря спецификации как noexcept и классификации как безопасной относительно исключений («exception safe») [SWS_CORE_02190] вызов operator() гарантирует, что исключения ни в какой момент времени не генерируются и не покидают фрейм функции. Интерфейс не определяет ни специфических кодов ошибок, ни возвращаемого типа ara::core::Result, поскольку вычисление хэша может детерминированно выполняться для любого формально валидного экземпляра StringView. В качестве важного предусловия вызывающая сторона обязана убедиться, что переданная ссылка ara::core::StringView указывает на действительную область памяти. Хотя пустой StringView может хэшироваться без проблем и без ошибок, передача представления с недействительной или уже освобожденной областью памяти (висячий указатель) приводит к неопределенному поведению при операции чтения памяти. На уровне постусловий функция гарантирует, что переданный аргумент остается неизменным и возвращается детерминированное хэш-значение size_t [SWS_CORE_02190].

Настоящее руководство по классу было составлено ИИ-ассистентом курации на основе спецификации AUTOSAR R25-11.

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

Операторы

operator() функция

Invoke the hashing function

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

Документация методов

функция 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#b4e724d6
Content hash
b4e724d6
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