DEENESPTFRRUARHIKOZHNL

بنية ara::core::variant_size< Variant< Types... > >

[SWS_CORE_01605]

template <typename... Types> struct variant_size< Variant< Types... > > {...};

As per corresponding usage in [variant]

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

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

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

يحدد في وقت الترجمة البرمجية عدد الأنواع البديلة لكائن Variant كقيمة ثابتة.

يُستخدم القالب ara::core::variant_size< Variant< Types... > > كسمة وقت الترجمة البرمجية (Compile-Time Trait) في الوحدة النمطية core لتحديد عدد الأنواع البديلة لـ ara::core::Variant. يوفر التخصيص معلومات النوع هذه للخوارزميات العامة والتأكيدات الثابتة، دون الحاجة إلى إنشاء مثيلات في وقت التشغيل. وكقيد أساسي، يتم التقييم بالكامل بشكل ثابت بواسطة المترجم، ولهذا السبب لا توجد أخطاء وقت تشغيل أو دورات حياة ديناميكية.

السياق

يمثل قالب الفئة ara::core::variant_size< Variant< Types... > > تخصيصاً جزئياً لهيكل السمة العام ara::core::variant_size للنوع ara::core::Variant داخل الوحدة النمطية core الخاصة بـ AUTOSAR Adaptive Platform. يتمثل دور هذا التخصيص في تقديم معلومات في وقت الترجمة البرمجية حول عدد أنواع البدائل المصرح بها في القالب متغير الوسائط (Variadic Template) Variant< Types... >. يعمل كشركاء تفاعل أساسيين الخوارزميات العامة، ومكتبات البرمجة الوصفية للقوالب، بالإضافة إلى المطورين الذين ينفذون منطقاً معتمداً على الأنواع لعمليات الاتحاد الآمنة للأنواع (Type-safe Unions). وفقاً للوصف العام، يسترشد السلوك بالاستخدام المقابل في معيار C++ لـ Variants. ويُرجح أن التخصيص يعمل كجسر تكامل لتوفير نفس واجهات وقت الترجمة البرمجية وأنماط البرمجة الوصفية لـ ara::core::Variant كما يعرفها المطورون من بيئات C++ الحديثة. سؤال Q-755dac46e27ba347 (مفتوح)

دورة الحياة

كبنية بحتة لوقت الترجمة البرمجية، لا يمتلك ara::core::variant_size< Variant< Types... > > دورة حياة ديناميكية في وقت تشغيل البرنامج. لا توجد عمليات إنشاء في الذاكرة الديناميكية ولا مراحل تدمير أو انتقالات للحالة. يُفترض أن الهيكل لا يغلف بيانات أعضاء متغيرة، ويعمل حصرياً كثابت في وقت الترجمة البرمجية أو كدالة وصفية (Metafunction). سؤال (مفتوح) ونظراً لأن جميع التقييمات تتم بالفعل أثناء عملية الترجمة البرمجية بواسطة المترجم، فإن التزامن وأمان الخيوط في وقت التشغيل وحقوق الملكية الصريحة لا تلعب أي دور. لا يلزم إنشاء مثيلات للهيكل في وقت التشغيل؛ وبدلاً من ذلك، تصل الشيفرة المستدعية عادةً إلى نتيجة التقييم عبر ثوابت الأعضاء الثابتة أو تعريفات الأسماء المستعارة للأنواع. وبالتالي فإن مدة بقاء القيم المشتقة تطابق وحدة الترجمة وتبقى كمعلومات وصفية ثابتة في الملف المترجم.

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

يتم مسار الاستخدام النموذجي لـ ara::core::variant_size< Variant< Types... > > بالكامل داخل تعبيرات القوالب أو التأكيدات الثابتة. في تسلسل تمثيلي، يصرح تطبيق أو وحدة نمطية أولاً عن نوع Variant ملموس، على سبيل المثال مع عدة أنواع بديلة لبيانات الحمولة. بعد ذلك، تصل خوارزمية عامة إلى ara::core::variant_size باستخدام نوع الـ Variant هذا كمعامل، لتحديد العدد الإجمالي للبدائل. يتمثل تفسير هذا الوصول في أن الهيكل يوفر القيمة الصحيحة الثابتة لعدد الأنواع عبر عنصر بيانات ثابت. تُستخدم هذه القيمة عادةً في الحلقات الثابتة، أو دوال القوالب التكرارية، أو عمليات فحص static_assert، لضمان أن فهرس الوصول يقع ضمن الحدود المسموح بها لقائمة أنواع الـ Variant على سبيل المثال. لا يتطلب المسار أي تهيئة مسبقة ولا يؤدي إلى أي حمل إضافي (Overhead) في وقت التشغيل.

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

نظراً لأن ara::core::variant_size< Variant< Types... > > يُقيّم حصرياً في وقت الترجمة البرمجية، فإن أخطاء وقت التشغيل التقليدية، أو رموز الأخطاء مثل ara::core::ErrorCode، أو الاستثناءات الديناميكية لا تحدث. تقتصر سيناريوهات الأخطاء المحتملة على مرحلة الترجمة البرمجية. إذا تم إنشاء مثيل للسمة بوسائط نوع لا تمثل ara::core::Variant صالحاً أو تحتوي على تعريفات غير مكتملة للأنواع، يرفض المترجم الترجمة البرمجية. ويُرجح وفقاً للتفسير أن يؤدي الاستخدام الخاطئ خارج واجهة القالب المخصصة إلى أخطاء مترجم ذات دلالة واضحة، على سبيل المثال عند محاولة الوصول إلى عناصر غير موجودة أو انتهاك حدود الفهارس بالاشتراك مع مساعدات سمات أخرى. سؤال Q-03a26a0bd31b942d (مفتوح) تتمثل الشروط المسبقة للاستخدام بشكل أساسي في أن يكون نوع الـ Variant الممرر مصرحاً به بشكل سليم. وتوجد الشروط اللاحقة في شكل التوافر الموثوق لقيمة العد المحددة في وقت الترجمة البرمجية.

يستند هذا الدليل إلى بيانات الواجهة للوحدة النمطية core من الإصدار R25-11. جميع البيانات دون أي ضمان.