नेमस्पेस std
उपयोगकर्ता गाइडएआई जनित
ara::core प्रकारों को मानक कंटेनरों और C++ मानक लाइब्रेरी के भाषा संसाधनों में एकीकृत करने में सक्षम बनाता है।
ara::core प्रकारों को मानक कंटेनरों और C++ मानक लाइब्रेरी के भाषा संसाधनों में एकीकृत करने में सक्षम बनाता है।
नेमस्पेस std मॉड्यूल core में AUTOSAR Adaptive Platform के डेटा प्रकारों के लिए std::hash, std::tuple_size और std::tuple_element के टेम्पलेट स्पेशलाइज़ेशन प्रदान करता है। यह ara::core::String, ara::core::Optional, ara::core::Variant, ara::core::Vector और ara::core::Array जैसे प्रकारों के मानक कंटेनरों में और C++ टपल भाषा संसाधनों के साथ प्रत्यक्ष उपयोग को सक्षम बनाता है। सीमांत शर्त यह है कि नेस्टेड प्रकारों के मामले में, संकलन समय पर निहित डेटा प्रकारों के पास भी मान्य स्पेशलाइज़ेशन होने चाहिए।
संदर्भ
AUTOSAR Adaptive Platform के मॉड्यूल core में, नेमस्पेस std C++ मानक लाइब्रेरी में प्लेटफ़ॉर्म-विशिष्ट बुनियादी प्रकारों के निर्बाध एकीकरण का कार्य करता है। नए प्रकार पेश करने के बजाय, नेमस्पेस मानकीकृत सहायक वर्गों के लक्षित टेम्पलेट स्पेशलाइज़ेशन प्रदान करता है। इंटरैक्शन भागीदारों में तीन प्रमुख घटक शामिल हैं: C++ मानक लाइब्रेरी के जेनेरिक प्रकार (विशेष रूप से अनऑर्डर्ड एसोसिएटिव कंटेनर और टपल सहायक उपकरण), std के भीतर टेम्पलेट स्पेशलाइज़ेशन, और मॉड्यूल core में परिभाषित डेटा प्रकार ara::core::Array, ara::core::Monostate, ara::core::Optional, ara::core::String, ara::core::StringView, ara::core::Variant और ara::core::Vector।
संदर्भ आरेख: मानक कंटेनरों, std में स्पेशलाइज़ेशन और ara::core प्रकारों के बीच परस्पर क्रिया। स्रोत: मॉड्यूल core के पेलोड घोषणाएं
std::hash के स्पेशलाइज़ेशन एडेप्टिव कोर डेटा प्रकारों को सीधे मानक कंटेनरों जैसे std::unordered_map या std::unordered_set में कुंजियों के रूप में उपयोग करना संभव बनाते हैं। इसके समानांतर, ara::core::Array के लिए स्पेशलाइज़ेशन std::tuple_size और std::tuple_element मानकीकृत मेटाप्रोग्रामिंग इंटरफेस और भाषा संसाधनों के समर्थन का विस्तार करते हैं।
उपयोग पथ
एक विशिष्ट उपयोग पथ जेनेरिक C++ कोड में ara::core डेटा प्रकार के उपयोग से शुरू होता है। उदाहरण के लिए, एक एप्लिकेशन ara::core::String या ara::core::Optional<T> प्रकार की कुंजियों के साथ एक हैश तालिका घोषित करता है। प्रविष्टि, विलोपन या लुकअप के दौरान, कंटेनर कुंजी हैश मान निर्धारित करने के लिए अंतर्निहित रूप से क्रमशः std::hash<ara::core::String> या std::hash<ara::core::Optional<T>> तक पहुँचता है।
विशेषज्ञताएँ विभिन्न डेटा संरचनाओं को कवर करती हैं:
- स्ट्रिंग्स और व्यूज़:
std::hash<ara::core::String>औरstd::hash<ara::core::StringView>शामिल वर्ण अनुक्रम पर हैश मानों की गणना करते हैं। - मिश्रित प्रकार:
std::hash<ara::core::Optional<T>>,std::hash<ara::core::Variant<...>>औरstd::hash<ara::core::Vector<T, Allocator>>जटिल प्रकार की संरचनाओं के हैशिंग को सक्षम करते हैं। व्याख्या:ara::core::Optionalऔरara::core::Variantके लिए स्पेशलाइज़ेशन मानकीकृत मॉडलों के सिमेंटिक व्यवहार पर आधारित होने चाहिए और रिक्त या अप्रयुक्त स्थितियों के लिए नियतात्मक मान उत्पन्न करने चाहिए। प्रश्न Q-c432b06f0ba32c5e (खुला) - स्टेटलेस प्रकार:
std::hash<ara::core::Monostate>रिक्त स्थितियों के लिए एक हैश फ़ंक्शन प्रदान करता है, जैसा कि आमतौर पर वेरिएंट में उपयोग किया जाता है। - टपल प्रोटोकॉल: निश्चित डेटा फ़ील्ड के लिए,
std::tuple_size<ara::core::Array<T, N>>संकलन समय पर तत्वों की संख्या प्रदान करता है, जबकिstd::tuple_element<I, ara::core::Array<T, N>>स्थितिIके डेटा प्रकार को निर्धारित करता है। व्याख्या:std::tuple_sizeऔरstd::tuple_elementके स्पेशलाइज़ेशन से संरचित बाइंडिंग्स (Structured Bindings) के साथara::core::Arrayके उपयोग को सक्षम करने की संभावना है। प्रश्न Q-3abb70390e67dbce (खुला)
त्रुटि परिदृश्य
चूंकि नेमस्पेस std के तत्व विशेष रूप से टेम्पलेट स्पेशलाइज़ेशन हैं, त्रुटि परिदृश्य मुख्य रूप से संकलन समय पर होते हैं। विशिष्ट समस्या स्थितियों में शामिल हैं:
- बुनियादी प्रकारों की हैशिंग क्षमता का अभाव: यदि
std::hashकोara::core::Optional<T>याara::core::Vector<T, Allocator>जैसे नेस्टेड प्रकार के लिए इंस्टैंशिएट किया जाता है, तो तत्व प्रकारTके लिएstd::hashका एक मान्य स्पेशलाइज़ेशन भी मौजूद होना चाहिए। यदि यह अनुपलब्ध है, तो इसके परिणामस्वरूप एक संकलन त्रुटि होती है। - टपल प्रोटोकॉल में अमान्य अनुक्रमण: इंडेक्स
I >= Nके साथstd::tuple_element<I, ara::core::Array<T, N>>तक पहुंचना टेम्पलेट की पूर्व शर्त का उल्लंघन करता है और संकलन प्रक्रिया को निरस्त करता है।
व्याख्या: त्रुटि परिदृश्य अनिवार्य रूप से अपूर्ण प्रकार की विशिष्टताओं या स्थिर सीमा उल्लंघनों पर संकलन-समय त्रुटियों तक सीमित होने चाहिए, क्योंकि विनिर्देश अंश किसी भी रनटाइम त्रुटि कोड या अपवाद इंटरफेस को परिभाषित नहीं करता है। प्रश्न Q-8cda269c72bd701c (खुला)
यह मार्गदर्शिका विशेष रूप से रिलीज़ R25-11 के लिए मॉड्यूल core की घोषित क्लास स्पेशलाइज़ेशन पर आधारित है।
विषय मानचित्र
क्लास आरेख
Abgerundete Rahmen = Namespace- bzw. Klassen-Scopes; hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); graue Boxen = namespace-fremde bzw. externe Basisklassen. Klicken öffnet die jeweilige Klassen- bzw. cppreference-Seite.
इस रिलीज़ के लिए कोई तत्व डेटा उपलब्ध नहीं
क्लासें
Specialization of std::hash (hashing function for ara::core::Monostate) ≙ std::hash
विशेषीकरण hash< ara::core::Optional< T > hash< ara::core::String > hash< ara::core::StringView > hash< ara::core::Variant< hash< ara::core::Vector< T, Allocator > >
≙ [array]
≙ [array]
gemini-3.8-flash-low· 2026-10-13 · जर्मन मूल