स्ट्रक्चर std::hash< ara::core::Optional< T >
template <typename T> struct hash< ara::core::Optional< T > > {...};
Specialization of std::hash (hashing function for ara::core::Optional)
| Header-Datei | #include "ara/core/optional.h" |
|---|---|
| Forwarding-Header | #include "ara/core/core_fwd.h" |
| Scope | namespace std |
उपयोगकर्ता गाइडएआई जनित
मानक सहयोगी कंटेनरों (standard associative containers) में उपयोग के लिए वैकल्पिक मानों हेतु हैश मानों की गणना को सक्षम बनाता है।
मानक सहयोगी कंटेनरों (standard associative containers) में उपयोग के लिए वैकल्पिक मानों हेतु हैश मानों की गणना को सक्षम बनाता है।
टेम्पलेट विशेषज्ञता std::hash<ara::core::Optional<T>> AUTOSAR Adaptive Platform (रिलीज़ R25-11) के मॉड्यूल core में ara::core::Optional के लिए एक मानक-अनुरूप हैश फ़ंक्शन प्रदान करती है। यह ऑक्युपेंसी स्थिति (occupancy state) और निहित मान के आधार पर हैश मान की गणना करके std::unordered_map जैसे अनऑर्डर्ड सहयोगी कंटेनरों में कुंजियों के रूप में वैकल्पिक मानों के सीधे उपयोग को सक्षम बनाता है। व्याख्या: सबसे महत्वपूर्ण सीमा शर्त यह मानी जानी चाहिए कि पैरामीटरयुक्त डेटा प्रकार T के लिए एक कार्यात्मक विशेषज्ञता std::hash<T> मौजूद है और स्टेटलेस फ़ंक्शन ऑब्जेक्ट को बिना किसी साइड इफेक्ट के समवर्ती रूप से कॉल किया जा सकता है। प्रश्न Q-5e98f9abd214d511 (खुला) Optional में मान की अनुपस्थिति किसी त्रुटि स्थिति का प्रतिनिधित्व नहीं करती है, बल्कि एक नियतात्मक (deterministic) परिणाम की ओर ले जाती है।
संदर्भ
टेम्पलेट वर्ग std::hash<ara::core::Optional<T>> AUTOSAR Adaptive Platform (रिलीज़ R25-11) के मॉड्यूल core में जेनेरिक डेटा प्रकार ara::core::Optional के लिए मानकीकृत फ़ंक्शन ऑब्जेक्ट std::hash की एक विशेषज्ञता प्रदान करता है। इस विशेषज्ञता का प्राथमिक कार्य ara::core::Optional<T> के इंस्टेंस के लिए हैश मानों की गणना को C++ के मानक-अनुरूप हैशिंग पारिस्थितिकी तंत्र में पारदर्शी रूप से एकीकृत करना है। इस प्रकार, वैकल्पिक मानों को सीधे अनऑर्डर्ड सहयोगी कंटेनरों जैसे कि std::unordered_map या std::unordered_set में कुंजियों के रूप में उपयोग किया जा सकता है। व्याख्या: ara::core::Optional<T> के लिए std::hash की विशेषज्ञता संभवतः यह मानती है कि अंतर्निहित प्रकार T के लिए std::hash<T> की एक मान्य विशेषज्ञता भी उपलब्ध है, ताकि किसी उपस्थित मान के हैश मान का निर्धारण किया जा सके। प्रश्न Q-1ada0d8edc4f7690 (खुला)
जीवनचक्र
सिंटैक्स template <typename T> struct hash<ara::core::Optional<T>> के अनुसार एक संरचना की विशेषज्ञता के रूप में, यह प्रकार एक नियमित फ़ंक्शन ऑब्जेक्ट के रूप में कार्य करता है। ऑब्जेक्ट की आमतौर पर अपनी कोई आंतरिक स्थिति नहीं होती है और यह जटिल जीवनचक्र चरणों या व्यापक संसाधन आरक्षण के अधीन नहीं होता है। इंस्टैंसिएशन मांग-संचालित होता है, आमतौर पर प्रबंधकीय सहयोगी कंटेनर द्वारा अंतर्निहित रूप से या एप्लिकेशन कोड में हैशिंग प्रक्रिया के सीधे निष्पादन के दौरान स्पष्ट रूप से।
कॉल किए जाने पर पास किए गए डेटा पर कोई स्वामित्व संबंध स्थापित नहीं होते हैं, क्योंकि ara::core::Optional<T> का इंस्टेंस केवल मूल्यांकन के लिए एक स्थिर संदर्भ (constant reference) के रूप में उपयोग किया जाता है। फ़ंक्शन कॉल के पूरा होने के बाद या कंटेनर के दायरे से बाहर निकलने पर, std::hash का इंस्टेंस सामान्य रूप से नष्ट हो जाता है। व्याख्या: फ़ंक्शन ऑब्जेक्ट स्टेटलेस है और इसलिए कई निष्पादन संदर्भों में समानांतर हैशिंग संचालन के लिए साइड-इफ़ेक्ट-मुक्त और थ्रेड-सुरक्षित होना चाहिए, जब तक कि संदर्भित मान को एक ही समय में संशोधित न किया जाए। प्रश्न (खुला)
उपयोग पथ
विशिष्ट अनुप्रयोग हैश-आधारित डेटा संरचनाओं में ara::core::Optional के उपयोग के ढांचे के भीतर होता है। डेवलपर्स परिभाषा को शामिल करते हैं और उदाहरण के लिए एक सेट या एक मैप घोषित करते हैं, जिसका कुंजी प्रकार ara::core::Optional<T> से मेल खाता है। इन्सर्ट, सर्च या डिलीट ऑपरेशनों के दौरान, कंटेनर स्वतंत्र रूप से विशेषज्ञता के कॉल ऑपरेटर operator() को इनवोक करता है।
हैश मान का मूल्यांकन करते समय, मान की उपस्थिति और अनुपस्थिति के बीच अंतर किया जाता है। व्याख्या: एक खाली ara::core::Optional (बिना किसी मान के) के लिए एक निश्चित, नियतात्मक हैश मान की गणना की जानी चाहिए, जबकि यदि कोई मान मौजूद है, तो संभवतः निहित ऑब्जेक्ट का हैश मान T के संबंधित हैश फ़ंक्शन के माध्यम से निर्धारित किया जाता है। प्रश्न (खुला) प्रकार std::size_t का निर्धारित संख्यात्मक मान तब मेमोरी बकेट को संबोधित करने के लिए कॉलिंग कंटेनर को वापस कर दिया जाता है।
त्रुटि परिदृश्य
हैश गणना के स्तर पर, नियमित रूप से ara::core::ErrorCode या इसके समान त्रुटि कोड के माध्यम से कोई त्रुटि रिटर्न प्रदान नहीं किया जाता है। कंटेनर इनवेरिएंट्स की अखंडता बनाए रखने के लिए हैश मानों के लिए एक फ़ंक्शन ऑब्जेक्ट को नियतात्मक और विश्वसनीय रूप से कार्य करना चाहिए। ara::core::Optional में मान की अनुपस्थिति किसी त्रुटि स्थिति का प्रतिनिधित्व नहीं करती है, बल्कि ऑब्जेक्ट की एक नियमित स्थिति है, जिसे एक परिभाषित हैश मान में परिवर्तित किया जाना चाहिए।
संभावित संकलन त्रुटियां तब होती हैं यदि प्रकार T हैश करने योग्य नहीं है और कोई संगत std::hash<T> विशेषज्ञता मौजूद नहीं है। रनटाइम त्रुटियां उत्पन्न हो सकती हैं यदि प्रकार T के लिए कस्टम हैश फ़ंक्शन अपवाद फेंकते हैं या अपरिभाषित व्यवहार उत्पन्न करते हैं। त्रुटि-मुक्त कॉल के लिए पूर्वशर्त ऑपरेशन के निष्पादन के दौरान संदर्भित ara::core::Optional ऑब्जेक्ट की वैधता है।
यह मार्गदर्शिका AUTOSAR Adaptive Platform रिलीज़ R25-11 के संरचनात्मक मेटाडेटा पर आधारित है।
UML क्लास आरेख
Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.
gemini-3.8-flash-low· 2026-10-13 · जर्मन मूल