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

उपयोगकर्ता गाइडएआई जनित

अनुकूली अनुप्रयोगों (adaptive applications) के लिए संकलन समय पर एक variant निर्माण के वैकल्पिक प्रकारों की संख्या निर्धारित करता है।
एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 7a464dd06736 उद्गम खुले प्रश्न (3)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

अनुकूली अनुप्रयोगों (adaptive applications) के लिए संकलन समय पर एक variant निर्माण के वैकल्पिक प्रकारों की संख्या निर्धारित करता है।

क्लास टेम्पलेट ara::core::variant_size AUTOSAR Adaptive Platform के लिए variants में प्रकारों की संख्या के स्थैतिक प्रश्न (static query) हेतु एक मेटाप्रोग्रामिंग निर्माण प्रदान करता है। विनिर्देश के अनुसार, यह टेम्पलेट [variant] में संबंधित उपयोग का अनुसरण करता है। व्याख्या: मूल्यांकन कंपाइलर द्वारा विशेष रूप से संकलन समय पर किया जाता है, ताकि रनटाइम पर न तो मेमोरी आवंटन हो और न ही गतिशील स्थिति संक्रमण (dynamic state transitions)। प्रश्न 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 (खुला)

इंटरैक्शन भागीदार प्लेटफ़ॉर्म के भीतर उन सॉफ़्टवेयर घटकों, एल्गोरिदम और फ़ंक्शन टेम्पलेट्स तक सीमित हैं जो टाइप-सुरक्षित यूनियन संरचनाओं का मूल्यांकन करते हैं। विशेष रूप से ara::core::variant जैसे variant प्रकारों के संयोजन में, ara::core::variant_size डेवलपर्स और लाइब्रेरी फ़ंक्शंस को अंतर्निहित प्रकारों के इंस्टेंस बनाए बिना प्रकार सूचियों के बारे में मेटा-जानकारी प्राप्त करने में सक्षम बनाता है। चूंकि घोषणा नेमस्पेस ara::core में स्थित है, यह अनुकूली सॉफ़्टवेयर घटकों के लिए एक मानकीकृत बिल्डिंग ब्लॉक बनाती है जो नियतात्मक (deterministic) और संसाधन-कुशल पैटर्नों के अनुसार कार्य करते हैं।

जीवनचक्र

चूँकि ara::core::variant_size को रनटाइम स्थिति के बिना एक शुद्ध टेम्पलेट निर्माण के रूप में डिज़ाइन किया गया है, इसका जीवनचक्र Adaptive Platform के नियमित रनटाइम ऑब्जेक्ट्स से मौलिक रूप से भिन्न होता है। व्याख्या: इसमें न तो गतिशील आवंटन हैं और न ही स्वामित्व संबंध, स्थिति संक्रमण या कोई स्पष्ट विनाश प्रक्रिया (destruction process), क्योंकि संरचना का मूल्यांकन विशेष रूप से कंपाइलर द्वारा टेम्पलेट इंस्टैंसिएशन के भाग के रूप में किया जाता है। प्रश्न (खुला)

इस अवधारणा में इंस्टेंस वेरिएबल्स या आंतरिक बफ़र्स का कोई प्रावधान नहीं है। यह प्रकार आमतौर पर हीप या स्टैक पर एक गतिशील ऑब्जेक्ट के रूप में आवंटित नहीं किया जाता है, बल्कि एक कंपाइल-टाइम स्थिरांक स्रोत के रूप में कार्य करता है। समवर्ती (concurrency) के संबंध में, कोई सिंक्रनाइज़ेशन आवश्यकताएं उत्पन्न नहीं होती हैं: चूंकि पहुंच विशुद्ध रूप से स्थैतिक है और कोई साझा परिवर्तनशील स्थितियां मौजूद नहीं हैं, इसलिए यह क्वेरी स्वाभाविक रूप से समवर्ती-सुरक्षित (concurrency-safe) है और बिना किसी रनटाइम ओवरहेड के संभव है।

उपयोग पथ

ara::core::variant_size का विशिष्ट उपयोग पथ C++ स्रोत कोड के संकलन के दौरान पूरी तरह से घटित होता है। एक डेवलपर या एक जेनेरिक एल्गोरिदम एक variant के अनुमत प्रकारों की संख्या के आधार पर ब्रांचिंग या स्थैतिक एसरशन करने के लिए इस trait का उपयोग करता है।

सर्वप्रथम, वांछित लक्ष्य प्रकार, आमतौर पर कई प्रकार के विकल्पों वाला एक variant, ara::core::variant_size को टेम्पलेट तर्क के रूप में पास किया जाता है। अगले चरण में, कॉलिंग कोड प्रकारों की संख्या का संख्यात्मक मान प्राप्त करने के लिए संरचना के स्थैतिक मान तक पहुँचता है। यह कदम अक्सर static_assert जांच, जेनेरिक लूप निर्माण या टेम्पलेट मेटाप्रोग्रामिंग श्रृंखलाओं के संदर्भ में किया जाता है, ताकि यह सुनिश्चित किया जा सके कि केवल तत्वों की अपेक्षित न्यूनतम या अधिकतम संख्या वाले variants को ही संसाधित किया जाए।

व्याख्या: यदि कोई अनुपयुक्त डेटा प्रकार पास किया जाता है जिसके लिए कोई विशेषज्ञता मौजूद नहीं है, तो प्रक्रिया संकलन त्रुटि के साथ सीधे कंपाइलर में निरस्त हो जाती है, जिससे प्रोग्राम निष्पादन से पहले ही अमान्य प्रकार के उपयोगों की पहचान कर ली जाती है और उन्हें रोक दिया जाता है। प्रश्न (खुला)

यह मार्गदर्शिका core मॉड्यूल पर AUTOSAR R25-11 विनिर्देश डेटा पर आधारित है। सभी सीधे अप्रमाणित पहलुओं को व्याख्या के रूप में चिह्नित किया गया है।