DEENESPTFRRUARHIKOZHNL

نطاق أسماء std

دليل المستخدممولَّد بالذكاء الاصطناعي

يُمكّن من دمج أنواع ara::core في الحاويات القياسية ووسائل لغة مكتبة C++ القياسية.
مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: e52b54851dc1 المصدر أسئلة مفتوحة (3)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

يُمكّن من دمج أنواع ara::core في الحاويات القياسية ووسائل لغة مكتبة C++ القياسية.

توفر مساحة الأسماء std في الوحدة core تخصصات قوالب لـ std::hash وstd::tuple_size وstd::tuple_element لأنواع بيانات AUTOSAR Adaptive Platform. يتيح ذلك الاستخدام المباشر لأنواع مثل ara::core::String وara::core::Optional وara::core::Variant وara::core::Vector وara::core::Array في الحاويات القياسية ومع وسائل لغة صفوف (Tuple) C++. والقيد الحاكم هو أنه في حالة الأنواع المتداخلة، يجب أن تمتلك أنواع البيانات المتضمنة أيضًا تخصصات صالحة في وقت الترجمة.

السياق

في الوحدة core من AUTOSAR Adaptive Platform، تخدم مساحة الأسماء std الدمج السلس للأنواع الأساسية المحددة للمنصة في مكتبة C++ القياسية. وبدلًا من تقديم أنواع جديدة، توفر مساحة الأسماء تخصصات قوالب موجهة لفئات مساعدة قياسية. وتشتمل أطراف التفاعل على ثلاثة مكونات أساسية: الأنواع العامة لمكتبة C++ القياسية (ولا سيما الحاويات التجميعية غير المرتبة وأدوات Tuple المساعدة)، وتخصصات القوالب داخل std، وأنواع البيانات ara::core::Array وara::core::Monostate وara::core::Optional وara::core::String وara::core::StringView وara::core::Variant وara::core::Vector المحددة في الوحدة core.

std_context app حاويات قياسية ووسائل لغوية (مثل std::unordered_map وStructured Binding) std_spec Spezialisierungen in namespace std (std::hash, std::tuple_size, std::tuple_element) app->std_spec يستخدم ara_types ara::core Datentypen (Array, Optional, String, StringView, Variant, Vector, Monostate) std_spec->ara_types يضمّن

مخطط السياق: التفاعل بين الحاويات القياسية والتخصصات في std وأنواع ara::core. المصادر: تصريحات الحمولة للوحدة core

تتيح تخصصات std::hash استخدام أنواع البيانات التكيفية الأساسية مباشرة كمفاتيح في الحاويات القياسية مثل std::unordered_map أو std::unordered_set. وبالتوازي مع ذلك، توسع التخصصات std::tuple_size وstd::tuple_element لـ ara::core::Array دعم واجهات البرمجة الوصفية (Metaprogramming) ووسائل اللغة القياسية.

مسار الاستخدام

يبدأ مسار الاستخدام النموذجي باستخدام نوع بيانات ara::core في تعليمات برمجة عامة بلغة C++. على سبيل المثال، يصرح أحد التطبيقات عن جدول تجزئة بمفاتيح من النوع ara::core::String أو ara::core::Optional<T>. وعند الإدراج أو الحذف أو البحث، تصل الحاوية ضمنيًا إلى std::hash<ara::core::String> أو std::hash<ara::core::Optional<T>> لتحديد قيمة تجزئة المفتاح.

تغطي التخصصات هياكل بيانات مختلفة:

  • السلاسل النصية ومساقط الرؤية: يحسب std::hash<ara::core::String> وstd::hash<ara::core::StringView> قيم التجزئة عبر تسلسل الأحرف المتضمن.
  • الأنواع المركبة: يُمكّن std::hash<ara::core::Optional<T>> وstd::hash<ara::core::Variant<...>> وstd::hash<ara::core::Vector<T, Allocator>> من تجزئة هياكل الأنواع المعقدة. التفسير: يُرجَّح أن تسترشد التخصصات لـ ara::core::Optional وara::core::Variant بالسلوك الدلالي للنماذج القياسية وتولد قيمًا حتمية للحالات الفارغة أو غير المشغولة. سؤال Q-c432b06f0ba32c5e (مفتوح)
  • الأنواع عديمة الحالة: يوفر std::hash<ara::core::Monostate> دالة تجزئة للحالات الفارغة، كما تُستخدم عادة في المتغيرات البديلة (Variants).
  • بروتوكول Tuple: بالنسبة لحقول البيانات الثابتة، يوفر std::tuple_size<ara::core::Array<T, N>> عدد العناصر في وقت الترجمة، بينما يحدد std::tuple_element<I, ara::core::Array<T, N>> نوع بيانات الموضع I. التفسير: يُرجَّح أن تتيح تخصصات std::tuple_size وstd::tuple_element بذلك استخدام ara::core::Array مع الارتباطات المهيكلة (Structured Bindings). سؤال Q-3abb70390e67dbce (مفتوح)

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

نظرًا لأن العناصر الموجودة في مساحة الأسماء std هي حصرًا تخصصات قوالب، فإن سيناريوهات الخطأ تظهر في المقام الأول في وقت الترجمة. وتشمل مجموعات المشكلات النموذجية:

  • غياب قابلية التجزئة للأنواع الأساسية: إذا تم إنشاء مثيل لـ std::hash لنوع متداخل مثل ara::core::Optional<T> أو ara::core::Vector<T, Allocator>، فيجب أن يتوفر أيضًا تخصص صالح لـ std::hash لنوع العنصر T. وإذا كان هذا التخصص مفقودًا، فسيؤدي ذلك إلى خطأ في الترجمة.
  • فهرسة غير صالحة في بروتوكول Tuple: يؤدي الوصول إلى std::tuple_element<I, ara::core::Array<T, N>> بفهرس I >= N إلى انتهاك الشرط المسبق للقالب وإلغاء عملية الترجمة.

التفسير: يُرجَّح أن تقتصر سيناريوهات الخطأ أساسًا على أخطاء وقت الترجمة في حالات تخصصات الأنواع غير المكتملة أو انتهاكات النطاق الثابت، نظرًا لأن مقتطف المواصفات لا يحدد رموز أخطاء أو واجهات استثناءات لوقت التشغيل. سؤال Q-8cda269c72bd701c (مفتوح)

يستند هذا الدليل حصريًا إلى تخصصات الفئات المُعلن عنها للوحدة core للإصدار R25-11.

خريطة المواضيع

مخطط الفئة

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.

G cluster_ns std nstd__hash__ara__core__Monostate__ «struct» hash< ara::core::Monostate > nstd__hash__ara__core__Optional__T__ «struct» hash< ara::core::Optional< T > nstd__hash__ara__core__Optional__T____ hash< ara::core::Optional< T > > nstd__hash__ara__core__String__ «struct» hash< ara::core::String > nstd__hash__ara__core__StringView__ «struct» hash< ara::core::StringView > nstd__hash__ara__core__Variant_ «struct» hash< ara::core::Variant< nstd__hash__ara__core__Variant__Types_______ hash< ara::core::Variant< Types... > > nstd__hash__ara__core__Vector__T__Allocator____ «struct» hash< ara::core::Vector< T, Allocator > > nstd__tuple_element__I__ara__core__Array__T__N____ «struct» tuple_element< I, ara::core::Array< T, N > > nstd__tuple_size__ara__core__Array__T_ «struct» tuple_size< ara::core::Array< T, next_integral__constant__size_t__N__ integral_ constant< size_t, N > nstd__tuple_size__ara__core__Array__T_->next_integral__constant__size_t__N__

عرض التفاصيل

اختر عنصرًا من المخطط.

الفئات

hash فئة

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

التخصيصات hash< ara::core::Optional< T > hash< ara::core::String > hash< ara::core::StringView > hash< ara::core::Variant< hash< ara::core::Vector< T, Allocator > >

≙ [array]

tuple_size فئة

≙ [array]