अपवाद-रहित मेमोरी आवंटन और डी-एलोकेशन के लिए बेस इंटरफ़ेस के रूप में कार्य करता है।
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: efd95fd8a941उद्गमखुले प्रश्न (2)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
अपवाद-रहित मेमोरी आवंटन और डी-एलोकेशन के लिए बेस इंटरफ़ेस के रूप में कार्य करता है।
यह क्लास पॉलीमॉर्फ़िक मेमोरी संसाधनों के लिए एक एब्सट्रैक्ट बेस इंटरफ़ेस प्रदान करती है, जो C++ मानक इंटरफ़ेस पर आधारित है। नॉन-वर्चुअल-इंटरफ़ेस पैटर्न के माध्यम से यह आवंटन और डी-एलोकेशन अनुरोधों को व्युत्पन्न संसाधन वर्गों को अग्रेषित करती है [SWS_CORE_06503]। C++ मानक के विपरीत, सभी इंटरफ़ेस फ़ंक्शंस अपवाद-सुरक्षित घोषित हैं, यही कारण है कि मेमोरी त्रुटियों को अपवाद द्वारा नहीं, बल्कि एक नल पॉइंटर लौटाकर संकेतित किया जाता है [SWS_CORE_06566]। इसके अलावा, आवंटन और डी-एलोकेशन प्रक्रियाएं डिफ़ॉल्ट रूप से थ्रेड-सुरक्षित नहीं बनाई गई हैं।
संदर्भ
क्लास ara::core::MemoryResource AUTOSAR Adaptive Platform (मॉड्यूल core) में मेमोरी प्रबंधन के लिए एक एब्सट्रैक्ट बेस इंटरफ़ेस प्रदान करती है, जो C++ मानक प्रकार std::pmr::memory_resource पर आधारित है। यह विनिमेय आवंटन रणनीतियों के लिए एक सामान्य आधार के रूप में कार्य करती है और कॉलिंग डेटा संरचनाओं को मेमोरी प्रावधान के ठोस तंत्र से अलग करती है। ISO-C++ मानक से एक महत्वपूर्ण अंतर के रूप में, AUTOSAR विनिर्देश गतिशील अपवादों को पूरी तरह से त्याग देता है और सभी ऑपरेशनों के लिए सख्त noexcept गारंटी तैयार करता है [SWS_CORE_06501]।
आर्किटेक्चर नॉन-वर्चुअल-इंटरफ़ेस पैटर्न (NVI) का पालन करता है: सार्वजनिक, गैर-वर्चुअल सदस्य फ़ंक्शंस कॉलर्स के लिए निश्चित इंटरफ़ेस को परिभाषित करते हैं, जबकि वास्तविक व्यवहार को व्युत्पन्न वर्गों में निजी, शुद्ध वर्चुअल सदस्य फ़ंक्शंस के माध्यम से कार्यान्वित किया जाना चाहिए। व्याख्या: ठोस मेमोरी संसाधन ara::core::MemoryResource से व्युत्पन्न होते हैं और एप्लिकेशन-विशिष्ट बफ़र या पूल प्रबंधन प्रदान करने के लिए निजी बेस इंटरफ़ेस do_allocate[SWS_CORE_06566], do_deallocate[SWS_CORE_06567] और do_is_equal[SWS_CORE_06568] को ओवरराइड करते हैं। प्रश्न Q-d09d47b0a8f6b822 (खुला)
जीवनचक्र
विशेषज्ञताओं का इंस्टेंसिएशन पैरामीटर-रहित डिफ़ॉल्ट कंस्ट्रक्टर के माध्यम से होता है, जिसे noexcept=default के रूप में निर्दिष्ट किया गया है [SWS_CORE_06501]। इसी तरह, एक noexcept कॉपी कंस्ट्रक्टर [SWS_CORE_06502] और एक noexcept कॉपी असाइनमेंट ऑपरेटर [SWS_CORE_06507] उपलब्ध हैं। C++ मानक के पूरक के रूप में, AUTOSAR स्पष्ट रूप से एक मूव कंस्ट्रक्टर [SWS_CORE_06574] और एक मूव असाइनमेंट ऑपरेटर [SWS_CORE_06575] को परिभाषित करता है, जो दोनों noexcept=default के रूप में निर्धारित हैं।
पॉलीमॉर्फ़िक इंस्टेंसेस का लाइफसाइकिल एक वर्चुअल डिस्ट्रक्टर द्वारा सुरक्षित किया जाता है, जिसे अपवाद-सुरक्षित घोषित किया गया है [SWS_CORE_06506]। समवर्तीता के संबंध में, यह ध्यान दिया जाना चाहिए कि डिस्ट्रक्टर के साथ-साथ आवंटन और डी-एलोकेशन फ़ंक्शंस allocate[SWS_CORE_06503] और deallocate[SWS_CORE_06504] को गैर-थ्रेड-सुरक्षित निर्दिष्ट किया गया है। व्याख्या: थ्रेड-सुरक्षित आवंटन और विमोचन के लिए उच्च-स्तरीय सिंक्रोनाइज़ेशन तंत्र या विशिष्ट सबक्लासेस ज़िम्मेदार होने की संभावना है, क्योंकि बेस मेथड्स को गैर-थ्रेड-सुरक्षित के रूप में निर्दिष्ट किया गया है। प्रश्न Q-adac4b6cf6e0db7c (खुला) इसके विपरीत, is_equal के माध्यम से समानता की जांच स्पष्ट रूप से थ्रेड-सुरक्षित रूप से डिज़ाइन की गई है [SWS_CORE_06505]।
उपयोग पथ
मेमोरी प्रबंधन में प्राथमिक प्रक्रिया में सार्वजनिक NVI इंटरफ़ेस के माध्यम से मेमोरी ब्लॉक्स का अनुरोध करना, वैकल्पिक पहचान जांच और बाद में विमोचन शामिल है:
मेमोरी आवंटन: कॉलर बाइट आकार और वैकल्पिक संरेखण निर्दिष्ट करते हुए allocate को कॉल करता है [SWS_CORE_06503]। मेथड आंतरिक रूप से ठोस क्लास के निजी शुद्ध वर्चुअल फ़ंक्शन do_allocate को डेलिगेट करती है [SWS_CORE_06566]।
समानता जांच: यह निर्धारित करने के लिए कि क्या दो मेमोरी संसाधन एक-दूसरे के समतुल्य हैं और क्या एक की मेमोरी को दूसरे द्वारा मुक्त किया जा सकता है, उपयोगकर्ता is_equal को कॉल करता है [SWS_CORE_06505], जो do_is_equal को डेलिगेट करता है [SWS_CORE_06568]।
मेमोरी डी-एलोकेशन: उपयोग पूरा होने के बाद, पॉइंटर, बाइट आकार और संरेखण निर्दिष्ट करते हुए ब्लॉक को deallocate के माध्यम से वापस किया जाता है [SWS_CORE_06504], जिससे do_deallocate को आंतरिक अग्रेषण होता है [SWS_CORE_06567]।
क्लास की एक प्रमुख विशेषता अपवादों का पूर्ण बहिष्कार है। जबकि ISO-C++ मानक मेमोरी समाप्त होने की स्थिति में std::bad_alloc प्रकार के अपवाद का प्रावधान करता है, AUTOSAR इससे लक्षित रूप से भिन्न है: यदि allocate या do_allocate में कोई आवंटन विफल हो जाता है, तो फ़ंक्शन अनिवार्य रूप से nullptr लौटाता है [SWS_CORE_06503], [SWS_CORE_06566]। allocate पर एट्रिब्यूट [[nodiscard]] द्वारा कॉलर को रिटर्न मान हमेशा स्वीकार करने और एक्सेस से पहले वैधता की जांच करने के लिए प्रेरित किया जाता है।
डी-एलोकेशन ऑपरेशनों deallocate और do_deallocate के लिए, यह नियम लागू होता है कि मेमोरी वापस करने पर किसी भी त्रुटि को चुपचाप अनदेखा कर दिया जाता है [SWS_CORE_06504], [SWS_CORE_06567]। न तो कोई अपवाद फेंके जाते हैं और न ही त्रुटि कोड लौटाए जाते हैं, जिससे अनुकूली प्लेटफ़ॉर्म संदर्भ में कठोर रीयल-टाइम और सुरक्षा आवश्यकताओं का अनुपालन सुगम हो जाता है।
यह पाठ AI द्वारा क्यूरेट किया गया था और पूरी तरह से AUTOSAR Adaptive Platform R25-11 विनिर्देशों पर आधारित है।
except for the following deviations: 1. The function is noexcept 2. The function returns nullptr instead of (potentially) throwing a std::bad_alloc exception ≙ std::bad_alloc
in [15] except for the following deviations: 1. The function is noexcept 2. The function returns nullptr instead of (potentially) throwing a std::bad_alloc exception ≙ std::bad_alloc
As per corresponding usage in [mem.res] except for the following deviations: 1. The function is noexcept 2. The function returns nullptr instead of (potentially) throwing a std::bad_alloc exception
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 6735dc6d085fउद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
वर्ग ara::core::MemoryResource का सदस्य फलन allocate निर्दिष्ट बाइट आकार और संरेखण (alignment) के साथ रैखिक मेमोरी के आवंटन के लिए कार्य करता है [SWS_CORE_06503]। यह C++ मानक इंटरफ़ेस [mem.res] पर आधारित है, लेकिन अपवाद प्रबंधन में काफी भिन्न है [SWS_CORE_06503]।
उपयोग और पैरामीटर
कॉल पैरामीटर bytes (अनुरोध किए जाने वाले बाइट्स की संख्या) और वैकल्पिक alignment के माध्यम से समकालिक रूप से होता है, जो डिफ़ॉल्ट रूप से alignof(std::max_align_t) पर सेट होता है [SWS_CORE_06503]। वापसी मान विशेषता [[nodiscard]] से सुसज्जित है, यही कारण है कि कॉलर में प्रकार void* के लौटाए गए पॉइंटर का मूल्यांकन किया जाना अनिवार्य है [SWS_CORE_06503]।
त्रुटि प्रबंधन और अपवाद सुरक्षा
मानक व्यवहार के विपरीत, त्रुटि की स्थिति में यह फलन प्रकार std::bad_alloc का कोई अपवाद नहीं फेंकता है, बल्कि इसे noexcept के रूप में घोषित किया गया है और इसे अपवाद-सुरक्षित (exception safe) माना जाता है [SWS_CORE_06503]:
सफलता:[mem.res][SWS_CORE_06503] के अनुसार आवंटित मेमोरी क्षेत्र के लिए एक मान्य पॉइंटर लौटाता है।
विफलता: यदि मेमोरी आवंटन विफल हो जाता है, तो फलन इसके बजाय nullptr लौटाता है [SWS_CORE_06503]। इसलिए कॉलर को परिणाम के शून्य सूचक (null pointer) होने की हमेशा स्पष्ट रूप से जाँच करनी चाहिए।
समवर्तीता और परस्पर क्रिया
फलन को गैर-थ्रेड-सुरक्षित (not thread-safe) के रूप में निर्दिष्ट किया गया है [SWS_CORE_06503]। परिणामस्वरूप, MemoryResource के समान इंस्टेंस पर समानांतर कॉल के लिए कॉलर द्वारा बाहरी सिंक्रोनाइज़ेशन की आवश्यकता होती है। यह दोष-सहिष्णु (fault-tolerant), अपवाद-मुक्त पैटर्न AUTOSAR Adaptive के अन्य मेमोरी घटकों में सुसंगत रूप से पाया जाता है: इस प्रकार ara::core::PolymorphicAllocator::allocate बिना अपवादों के समान दृष्टिकोण का उपयोग करता है [SWS_CORE_06547], और विशेष इंस्टेंस NullMemoryResource भी nullptr लौटाकर मेमोरी की समाप्ति का संकेत देता है [SWS_CORE_06563]।
यह उपयोग संबंधी निर्देश AUTOSAR विनिर्देश R25-11 के आधार पर स्वचालित रूप से जनरेट किया गया था।
As per corresponding usage in [mem.res] except for the following deviations: 1. The function is noexcept 2. If unsuccessful: errors will be silently ignored
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 65d739156bbeउद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
वर्ग ara::core::MemoryResource का फलन deallocate[SWS_CORE_06504] के अनुसार मेमोरी क्षेत्रों को मुक्त करने का कार्य करता है। उपयोग मूल रूप से [mem.res] के मानक व्यवहार का अनुसरण करता है, लेकिन इसमें विशिष्ट विचलन हैं। कॉल हस्ताक्षर void deallocate(void *p, std::size_t bytes, std::size_t alignment=max_align) noexcept के माध्यम से समकालिक रूप से की जाती है, जहाँ मुक्त किए जाने वाले ब्लॉक का पॉइंटर p, आकार bytes और वैकल्पिक रूप से संरेखण (alignment) पास किए जाते हैं [SWS_CORE_06504]।
त्रुटि व्यवहार के संबंध में, फलन को noexcept और अपवाद-सुरक्षित (exception safe) के रूप में निर्दिष्ट किया गया है [SWS_CORE_06504]। यदि वि-आवंटन (deallocation) विफल हो जाता है, तो त्रुटियों को बिना सूचना दिए अनदेखा कर दिया जाता है (errors will be silently ignored) [SWS_CORE_06504]। कोई अपवाद नहीं फेंके जाते हैं और DET या DEM के माध्यम से कोई त्रुटि संदेश जारी नहीं किए जाते हैं।
समवर्तीता के संबंध में, फलन को स्पष्ट रूप से गैर-थ्रेड-सुरक्षित (not thread-safe) के रूप में वर्गीकृत किया गया है [SWS_CORE_06504]। इसलिए समान संसाधन इंस्टेंस पर समवर्ती एक्सेस को कॉलर द्वारा बाह्य रूप से सिंक्रनाइज़ किया जाना चाहिए।
एलोकेटर अवधारणा के संयोजन में, यह फलन [SWS_CORE_06548] से वर्ग ara::core::PolymorphicAllocator के प्ररूपित (typed) इंटरफ़ेस deallocate से मेल खाता है, जो noexcept और मौन त्रुटि प्रबंधन के संबंध में समान विचलन प्रदर्शित करता है।
यह उपयोग नोट एक AI क्यूरेशन सहायक द्वारा स्वचालित रूप से तैयार किया गया था और यह पूरी तरह से AUTOSAR R25-11 के विनिर्देश डेटा पर आधारित है।
As per corresponding usage in [mem.res] in [15] except for the following deviations: 1. The function is noexcept 2. The function returns nullptr instead of (potentially) throwing a std::bad_alloc exception
Literaturverzeichnis SWS Core: [15] ISO/IEC 14882:2020, Programming languages – C++ – www.iso.org
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: fa83e476b05dउद्गमखुले प्रश्न (1)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
क्लास ara::core::MemoryResource की विशुद्ध वर्चुअल मेथड do_allocate पूर्वनिर्धारित बाइट आकार और अलाइनमेंट [SWS_CORE_06566] के साथ मेमोरी ब्लॉक आवंटित करने का काम करती है। पैरामीटर के रूप में, यह बाइट्स की संख्या (bytes) और आवश्यक अलाइनमेंट (alignment) लेती है। सफल आवंटन पर, यह आरक्षित मेमोरी क्षेत्र के लिए प्रकार void * का एक पॉइंटर सिंक्रोनस रूप से लौटाती है [SWS_CORE_06566]।
एरर हैंडलिंग के संबंध में, फ़ंक्शन जानबूझकर नियमित C++ मानक से विचलित होता है: इसे noexcept के रूप में घोषित किया गया है और विफलताओं पर यह कोई std::bad_alloc एक्सेप्शन नहीं फेंकता है, बल्कि इसके बजाय nullptr लौटाता है [SWS_CORE_06566]। इसलिए कॉल करने वालों को आवंटन परिणाम के लिए हमेशा एक नल पॉइंटर की जांच करनी चाहिए।
कॉनकरेंसी के संबंध में, मेथड को not thread-safe के रूप में निर्दिष्ट किया गया है [SWS_CORE_06566]। उसी इंस्टेंस पर समानांतर कॉल्स के लिए बाहरी सिंक्रोनाइज़ेशन की आवश्यकता होती है, जब तक कि व्युत्पन्न कार्यान्वयन अपनी स्वयं की सुरक्षा प्रदान न करे। प्राइवेट विज़िबिलिटी के कारण, उपयोगकर्ताओं द्वारा कॉल आमतौर पर बेस क्लास के उच्च-स्तरीय इंटरफ़ेस के माध्यम से अप्रत्यक्ष रूप से होने की संभावना है। प्रश्न Q-5cbdabf121ed4550 (खुला)
मेमोरी प्रबंधन की परस्पर क्रिया में, यह मेथड do_deallocate का सीधा प्रतिरूप है, जो आवंटित मेमोरी को मुक्त करने के लिए जिम्मेदार है और त्रुटियों को चुपचाप अनदेखा करता है [SWS_CORE_06567]। तुलना फ़ंक्शन do_is_equal इसके अलावा यह जांचता है कि क्या दो संसाधन इंस्टेंस आवंटन और डी-आवंटन के संबंध में एक दूसरे के साथ संगत हैं [SWS_CORE_06568]।
यह उपयोग नोट विनिर्देश के आधार पर स्वचालित रूप से जनरेट किया गया था।
As per corresponding usage in [mem.res] except for the following deviations: 1. The function is noexcept 2. If unsuccessful: errors will be silently ignored
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: fca1a9bccecbउद्गमखुले प्रश्न (1)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
ara::core::MemoryResource क्लास का शुद्ध वर्चुअल सदस्य फ़ंक्शन do_deallocate (ara/core/memory_resource.h में घोषित) [SWS_CORE_06567] के अनुसार पूर्व में आरक्षित मेमोरी को मुक्त करने का कार्य करता है। यह मेमोरी क्षेत्र के पॉइंटर p के साथ-साथ उसके आकार bytes और आवश्यक अलाइनमेंट alignment को स्वीकार करता है। इसके सिमेंटिक्स मूल रूप से C++ मानक [mem.res] के अनुरूप हैं, लेकिन इनमें दो महत्वपूर्ण Adaptive-विशिष्ट विचलन शामिल हैं [SWS_CORE_06567]।
पहला, फ़ंक्शन को noexcept के रूप में घोषित किया गया है और यह अपवाद-सुरक्षा (exception safe) की गारंटी देता है [SWS_CORE_06567]। दूसरा, डिअलोकेशन के दौरान होने वाली संभावित त्रुटियों को चुपचाप अनदेखा कर दिया जाता है, जिससे विफल ऑपरेशनों को न तो त्रुटि संदेश ट्रिगर करने चाहिए और न ही प्रोग्राम प्रवाह को बाधित करना चाहिए [SWS_CORE_06567]।
कनकंरेंसी के संबंध में, do_deallocate को not thread-safe के रूप में निर्दिष्ट किया गया है और इसकी दृश्यता private है [SWS_CORE_06567]। एक बहुरूपी (polymorphic) मेमोरी संसाधन के कार्यान्वयन विवरण के रूप में, इसे उच्च-स्तरीय सार्वजनिक कॉल इंटरफ़ेस के माध्यम से सिंक्रोनस रूप से निष्पादित किया जाना चाहिए। प्रश्न Q-3f97e122ee7fb281 (खुला) एक ही संसाधन पर समवर्ती (concurrent) रिलीज़ को व्युत्पन्न वर्गों द्वारा आवश्यकतानुसार स्वतंत्र रूप से सिंक्रोनाइज़ किया जाना चाहिए।
मॉड्यूल core में, यह फ़ंक्शन अलोकेशन do_allocate[SWS_CORE_06566] का समकक्ष बनता है, जो विफलता की स्थिति में अपवाद के बजाय nullptr लौटाता है। अन्य संसाधनों के साथ तुलना विधि do_is_equal[SWS_CORE_06568] के माध्यम से की जाती है, जिसे डिअलोकेशन के विपरीत स्पष्ट रूप से thread-safe के रूप में परिभाषित किया गया है।
यह उपयोग संबंधी निर्देश AUTOSAR R25-11 के विनिर्देश के आधार पर स्वचालित रूप से उत्पन्न किया गया था।
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: c0f1ba532a98उद्गमखुले प्रश्न (1)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
शुद्ध वर्चुअल सदस्य फ़ंक्शन do_is_equal को हेडर #include "ara/core/memory_resource.h" में ara::core::MemoryResource के नेमस्पेस के भीतर घोषित किया गया है ([SWS_CORE_06568])। यह C++ विनिर्देश [mem.res] के अनुसार समानता के लिए वर्तमान मेमोरी संसाधन की पास किए गए संदर्भ const MemoryResource &other के साथ सिंक्रोनस तुलना करने का काम करता है ([SWS_CORE_06568])। चूंकि विधि को निजी दृश्यता (private) के साथ परिभाषित किया गया है, इसलिए एक कार्यान्वयन विवरण के रूप में इसके कॉल को क्लास ara::core::MemoryResource के सार्वजनिक इंटरफ़ेस के माध्यम से बहुरूपी ढंग से निष्पादित किया जाना चाहिए ([SWS_CORE_06568])। प्रश्न Q-cbe02f652b43d6ec (खुला)
निष्पादन और त्रुटि-सुरक्षा के संबंध में, do_is_equal को exception safe के साथ-साथ noexcept के रूप में घोषित किया गया है ([SWS_CORE_06568])। अतः इसे किसी भी परिस्थिति में अपवाद नहीं फेंकना चाहिए और यह परिणाम को बूलियन रिटर्न मान ([SWS_CORE_06568]) के माध्यम से सीधे संकेतित करता है। इसके अलावा, विधि को thread-safe के रूप में निर्दिष्ट किया गया है, ताकि व्युत्पन्न कार्यान्वयनों को समवर्ती तुलनाओं के दौरान भी थ्रेड-सुरक्षा सुनिश्चित करनी चाहिए ([SWS_CORE_06568])।
मेमोरी प्रबंधन की अन्य वर्चुअल विधियों के साथ मिलकर, do_is_equal व्युत्पन्न संसाधन वर्गों ([SWS_CORE_06568]) के अनुकूलन बिंदुओं की तिकड़ी को पूरा करता है। जबकि मेमोरी आवंटन do_allocate विफलता की स्थिति में nullptr लौटाता है ([SWS_CORE_06566]) और do_deallocate त्रुटियों को चुपचाप अनदेखा करता है ([SWS_CORE_06567]), दोनों फ़ंक्शन do_is_equal के विपरीत गैर-थ्रेड-सुरक्षित (not thread-safe) के रूप में नामित हैं ([SWS_CORE_06566], [SWS_CORE_06567])। यह समवर्ती संसाधन तुलनाओं को सुरक्षित करने के लिए do_is_equal पर विशेष आवश्यकता को रेखांकित करता है ([SWS_CORE_06568])।
यह पाठ एक AI द्वारा तैयार किया गया था और AUTOSAR विनिर्देश के आधार पर उपयोग संबंधी निर्देश के रूप में कार्य करता है।
gemini-3.8-flash-low· 2026-10-13 · जर्मन मूल