DEENESPTFRRUARHIKOZHNL

بنية ara::core::variant_size

[SWS_CORE_01600]

template <typename T> struct variant_size;

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 · درجة الحرارة: غير قابل للتحكم · الموجّه: 7a464dd06736 المصدر أسئلة مفتوحة (3)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

يحدد في وقت الترجمة عدد الأنواع البديلة لبنية variant للتطبيقات التكيفية.

توفر فئة القالب ara::core::variant_size لـ AUTOSAR Adaptive Platform بنية برمجة تلوية للاستعلام الثابت عن عدد الأنواع في المتغيرات. وفقًا للمواصفة، يتبع القالب الاستخدام المقابل في [variant]. تفسير: يتم التقييم حصريًا في وقت الترجمة بواسطة المترجم، بحيث لا تنشأ أي تخصيصات للذاكرة أو انتقالات حالة ديناميكية في وقت التشغيل. سؤال Q-9438291a39a7af27 (مفتوح) ويتمثل الشرط الحدي الأساسي في وجوب امتلاك نوع البيانات الممرر تخصيص variant صالحًا، حيث تؤدي الأنواع غير المناسبة إلى حدوث خطأ أثناء التصريف.

السياق

ضمن إطار AUTOSAR Adaptive Platform، توفر الوحدة core بنى البيانات الأساسية وتعريفات الأنواع والبنى المساعدة للتطبيقات التكيفية. فئة القالب ara::core::variant_size مصرح عنها نحويًا كـ template <typename T> struct variant_size; وتتناول معالجة الأنواع القائمة على المتغيرات في النظام. وفقًا لوصف المواصفة، يسترشد الأداء الوظيفي بالاستخدام المقابل في [variant]. تفسير: بناءً على ذلك، تعمل البنية كسمة نوع نموذجية في وقت التصريف (Compile-Time-Type-Trait)، وتتمثل مسؤوليتها المركزية في الاستعلام عن عدد البدائل الموجودة في نوع variant في وقت الترجمة. سؤال Q-7b29532c4a4dbfb1 (مفتوح)

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

دورة الحياة

نظرًا لأن ara::core::variant_size مصمم كبنية قالب بحتة بدون حالة وقت تشغيل، فإن دورة حياته تختلف اختلافًا جوهريًا عن كائنات وقت التشغيل العادية في Adaptive Platform. تفسير: لا توجد تخصيصات ديناميكية ولا علاقات ملكية أو انتقالات حالة أو عملية تدمير صريحة، حيث يتم تقييم البنية حصريًا في إطار إنشاء مثيل القالب بواسطة المترجم. سؤال (مفتوح)

لم يُنص على متغيرات مثيل أو مخازن مؤقتة داخلية في هذا المفهوم. ولا يُخصص النوع عادةً ككائن ديناميكي على الكومة (heap) أو المكدس (stack)، بل يُستخدم كمصدر ثوابت في وقت التصريف. وفيما يتعلق بالتزامن، لا تنشأ أي متطلبات مزامنة: فنظرًا لأن الوصول يتم بشكل ثابت تمامًا ولا توجد حالات مشتركة قابلة للتعديل، فإن الاستعلام ممكن بأمان تزامني بطبيعته وبدون أي عبء إضافي في وقت التشغيل.

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

يتم مسار الاستخدام النموذجي لـ ara::core::variant_size بالكامل أثناء ترجمة شفرة C++‎ المصدرية. ويستخدم المطور أو الخوارزمية العامة السمة لإجراء تفريعات أو تأكيدات ثابتة بناءً على عدد الأنواع المسموح بها في variant.

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

تفسير: إذا تم تمرير نوع بيانات غير مناسب لا يتوفر له تخصيص، فستتوقف العملية مباشرة في المترجم مع ظهور خطأ في الترجمة، بحيث يتم التعرف على استخدامات الأنواع غير الصالحة ودرؤها بالفعل قبل تنفيذ البرنامج. سؤال (مفتوح)

يعتمد هذا الدليل على بيانات المواصفة الخاصة بـ AUTOSAR R25-11 للوحدة core. وقد تم تمييز جميع الجوانب غير المثبتة بدليل مباشر كتفسير.