DEENESPTFRRUARHIKOZHNL

بنية ara::core::in_place_index_t

[SWS_CORE_04031] Upstream: RS_AP_00130

template <std::size_t Index> struct in_place_index_t {...};

Denote an index-distinguishing operation to be performed in-place. An instance of this type can be passed to certain constructors of ara::core::Variant to denote the intention that construction of the contained type shall be done in-place, i.e. without any copying taking place.

Header-Datei#include "ara/core/utility.h"
Forwarding-Header#include "ara/core/core_fwd.h"
Scopenamespace ara::core

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

يُستخدم كنوع علامة (tag type) للبناء المباشر في الموضع (in-place) لقيمة في Variant بالاستناد إلى فهرسها.
مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 39c809af4202 المصدر أسئلة مفتوحة (2)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

يُستخدم كنوع علامة (tag type) للبناء المباشر في الموضع (in-place) لقيمة في Variant بالاستناد إلى فهرسها.

يُستخدم قالب الفئة ara::core::in_place_index_t كنوع علامة (tag type) لتمييز عمليات البناء في الموضع (in-place) عند فهرس معين داخل ara::core::Variant، وذلك لتجنب عمليات النسخ أو النقل غير الضرورية للقيمة المستهدفة. ويتم تمرير المثيلات بشكل موجه إلى منشئات Variant المناسبة، حيث يتم الإنشاء عبر المنشئ الافتراضي من ara/core/utility.h [SWS_CORE_04032]. ونظراً لأن منشئ الفئة معرف كـ explicit وnoexcept، فإن تحويلات النوع الضمنية مستبعدة وإنشاء المثيل آمن من الاستثناءات بشكل مضمون [SWS_CORE_04032].

السياق

يُعد قالب الفئة ara::core::in_place_index_t بنية مساعدة في الوحدة core لـ AUTOSAR Adaptive Platform ويتم توفيره عبر ملف الترويسة ara/core/utility.h [SWS_CORE_04032]. ويتمثل دوره الوظيفي في العمل كنوع علامة (tag type) فريد لعمليات البناء في الموضع (in-place) التي يتم التمييز بينها عبر فهرس رقمي. ويتم تمرير نموذج من هذا النوع إلى منشئات محددة لـ ara::core::Variant للإشارة إلى القصد بأن بناء النوع المتضمن يجب أن يتم مباشرة في الموضع («in-place») دون تنفيذ عمليات نسخ أو نقل.

في التعاون بين المستدعي ونوع المجموع ara::core::Variant، يتولى ara::core::in_place_index_t وظيفة إرسال العلامات (tag dispatching). تفسير: يُتوقع أن يكون التمييز المستند إلى الفهرس ذا صلة خاصة بمثيلات Variant التي تحتوي على بدائل متعددة من نفس النوع؛ ففي هذه الحالة، سيكون التحديد بناءً على نوع البيانات وحده غامضاً، بحيث يحدد التوجيه عبر معامل القالب Index بديل النوع الدقيق في حزمة الأنواع. سؤال Q-fc429a7c9e7e9362 (مفتوح)

دورة الحياة

إن دورة حياة ara::core::in_place_index_t أولية وخالية من انتقالات الحالة المعقدة. ويتم الإنشاء عبر المنشئ الافتراضي explicit in_place_index_t() noexcept = default; [SWS_CORE_04032]. وبواسطة التمييز كـ explicit، يتم منع تحويل النوع الضمني، مما يفرض إنشاء مثيل صريح وصارم في نوعه [SWS_CORE_04032].

نظراً لأن ara::core::in_place_index_t تعمل كمؤشر خالص ولا تمتلك سمات داخلية أو موارد ديناميكية، فإن الكائن عديم الحالة تماماً. ويُعد التدمير بسيطاً ولا يترتب عليه أي آثار جانبية. وفيما يتعلق بالتزامن، فإن البنية آمنة بالنسبة للخيوط بطبيعتها: نظراً لعدم وجود حالات قابلة للتغيير، يمكن استخدام المثيلات دون الحاجة إلى تكلفة مزامنة عبر حدود الخيوط.

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

ينقسم المسار النموذجي لاستخدام ara::core::in_place_index_t إلى الخطوات التالية:

  • تحديد الفهرس: يحدد المستدعي معامل القالب الرقمي Index الذي يمثل البديل المطلوب داخل ara::core::Variant.
  • إنشاء مثيل العلامة: يتم إنشاء مثيل لـ ara::core::in_place_index_t<Index> عبر المنشئ الافتراضي [SWS_CORE_04032]. تفسير: في الممارسة العملية، يُتوقع أن يتم الإنشاء يفضل كمعامل مؤقت مباشرة في الاستدعاء. سؤال Q-7c6292c2e97347b0 (مفتوح)
  • التمرير إلى منشئ الفئة: يتم تمرير مثيل العلامة كمعامل أول إلى منشئ الفئة لـ ara::core::Variant، متبوعاً بمعاملات منشئ الفئة للنوع المستهدف المُدار عند هذا الموضع.
  • التهيئة المباشرة: يقوم ara::core::Variant ببناء الكائن المستهدف مباشرة في نطاق الذاكرة المتاح دون إنشاء نسخ مؤقتة مسبقاً.
إنشاء موضعي لقيمة Variant عبر in_place_index_tAnwenderin_place_index_t<Index>VariantZielobjektexplicit in_place_index_t()Tag-InstanzVariant(in_place_index_t<Index>, args...)حل الفهرسIn-Place-Konstruktion(args...)Objekt instanziiertInitialisierte Variant-Instanz

مخطط تسلسلي: المسار النموذجي للبناء في الموضع لقيمة Variant عبر ara::core::in_place_index_t. المصادر: [SWS_CORE_04032]

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

فيما يتعلق بالتسامح مع الأخطاء، تتميز ara::core::in_place_index_t بالمتانة القصوى. وقد تم تحديد المنشئ الافتراضي بـ noexcept ويُعد آمناً من الاستثناءات («exception safe») [SWS_CORE_04032]. ولا توجد رموز خطأ ولا حالات خطأ معرفة لهذه البنية.

يتم رفض الاستخدامات الخاطئة في التحويلات الضمنية بواسطة المواصفة بوصفها explicit في وقت الترجمة [SWS_CORE_04032]. إذا تم إطلاق استثناء أثناء تنفيذ مُنشئ الإنشاء الموضعي (in-place) لـ ara::core::Variant، فلن يكون صادرًا عن ara::core::in_place_index_t، بل يعود سببه إلى سلوك الخطأ الخاص بالنوع الهدف المُراد إنشاؤه.

تم إنشاء هذا الدليل بواسطة ذكاء اصطناعي بناءً على مواصفة AUTOSAR R25-11.

مخطط الفئات UML

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

G nara__core__in_place_index_t938 «struct» in_place_index_t + in_place_index_t()

المُنشئات والمُتلف

Default constructor

explicit in_place_index_t () noexcept=default;

توثيق الدوال

دالة in_place_index_t [SWS_CORE_04032] Upstream: RS_AP_00130

explicit in_place_index_t () noexcept=default;

Default constructor

Header-Datei#include "ara/core/utility.h"
Scopestruct ara::core::in_place_index_t
Exception-Sicherheitexception safe

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

Record
AUTOSAR/AP/record/SWS_CORE_04032
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CORE_04032@rel:R25-11#57f7328a
Content hash
57f7328a
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Core.pdf#nameddest=SWS_CORE_04032
Status: valid/unmigrated Version: rel:R25-11#ed0aabbb Versionshistorie & Revisions (1 transition, 8 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_04032@rel:R25-11#ed0aabbb
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#8aa0e9952026-09-30
  • R19-11rel:R19-11#1dfe84832026-10-14
  • R20-11rel:R20-11#98f310882026-10-14
  • R21-11rel:R21-11#98f310882026-10-14
  • R22-11rel:R22-11#b23504bd2026-10-14
  • R23-11rel:R23-11#b523cc942026-10-14
  • R24-11rel:R24-11#a52ebef82026-10-14
  • R25-11rel:R25-11#ed0aabbb2026-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