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()، يحسب كائن الدالة عديم الحالة من مرجع StringView ثابت ممرر قيمة تجزئة رقمية صحيحة بشكل حتمي من النوع size_t [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 (مفتوح) وبعد الحساب، تُعاد القيمة الناتجة مباشرةً إلى المتصل، الذي يستخدمها على سبيل المثال لفهرسة حاوية (bucket).

سيناريوهات الأخطاء

استنادًا إلى توصيفه كـ noexcept وتصنيفه كآمن ضد الاستثناءات (”exception safe“) [SWS_CORE_02190]، يضمن استدعاء operator() عدم إطلاق أي استثناءات أو خروجها من نطاق الدالة في أي وقت. ولا تحدد الواجهة رموز خطأ معينة ولا نوع إرجاع ara::core::Result، حيث يمكن تنفيذ حساب التجزئة بشكل حتمي لكل مثيل StringView صالح شكليًا. كشرط مسبق أساسي، يتعين على المتصل التأكد من أن مرجع ara::core::StringView الممرر يشير إلى نطاق ذاكرة صالح. ومع أنه يمكن تجزئة StringView فارغ دون مشاكل وبلا أخطاء، فإن تمرير عرض ذي نطاق ذاكرة غير صالح أو تم تحريره بالفعل (dangling pointer) يؤدي إلى سلوك غير محدد أثناء عملية قراءة الذاكرة. وعلى مستوى الشروط اللاحقة، تضمن الدالة بقاء المعامل الممرر دون تغيير وإرجاع قيمة تجزئة 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#dab8af75
Content hash
dab8af75
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