template <typename T, typename E = ErrorCode> class Result final {...};
This class is a type that contains either a value or an error. The implementation shall flag the condition E != ara::core::ErrorCode as a compile error.
तुल्यकालिक, अपवाद-मुक्त परिणाम संचरण के लिए या तो सफलता मान या त्रुटि मान को एनकैप्सुलेट करता है।
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 33e53dcae988उद्गमखुले प्रश्न (1)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
तुल्यकालिक, अपवाद-मुक्त परिणाम संचरण के लिए या तो सफलता मान या त्रुटि मान को एनकैप्सुलेट करता है।
यह क्लास एक टाइप-सुरक्षित कंटेनर का प्रतिनिधित्व करती है जो C++ अपवादों के बिना तुल्यकालिक रूप से गणना परिणामों को प्रसारित करने के लिए या तो एक पेलोड मान या एक त्रुटि कोड रखती है [SWS_CORE_00751]। कॉलर समर्पित कंस्ट्रक्टरों या फ़ैक्टरी फ़ंक्शनों के माध्यम से इंस्टेंस बनाते हैं और फिर मान या त्रुटि एक्सेस जैसे सत्यापन और एक्सेस फ़ंक्शनों के माध्यम से स्थिति-निर्भर तरीके से परिणाम का मूल्यांकन करते हैं। एक आवश्यक बाधा के रूप में, अंतर्निहित त्रुटि प्रकार अनिवार्य रूप से मानक त्रुटि कोड के अनुरूप होना चाहिए, क्योंकि विचलित प्रकार असाइनमेंट संकलन समय पर अस्वीकार कर दिए जाते हैं। इसके अतिरिक्त, अपवाद ट्रिगर करने वाले फ़ंक्शन सक्रिय C++ अपवादों वाले कंपाइलर परिवेश की पूर्वकल्पना करते हैं [SWS_CORE_00766]।
संदर्भ
क्लास ara::core::Result अनिवार्य C++ अपवादों के उपयोग के बिना संचालन परिणामों की तुल्यकालिक, टाइप की गई वापसी के लिए AUTOSAR Adaptive Platform का केंद्रीय निर्माण है। यह एक असंयुक्त संघ (Tagged Union) का प्रतिनिधित्व करती है, जिसमें किसी भी समय या तो प्रकार value_type (T) का एक पेलोड मान या प्रकार error_type (E) की त्रुटि होती है [SWS_CORE_00711][SWS_CORE_00712]। डिफ़ॉल्ट रूप से, ara::core::ErrorCode प्रकार E के लिए प्रकार के रूप में कार्य करता है; कार्यान्वयनों द्वारा संकलन समय पर ही एक कंपाइलर त्रुटि के माध्यम से विचलित त्रुटि परिभाषाओं को रोका जाता है।
एप्लिकेशन आर्किटेक्चर में, ara::core::Result कॉल की गई सेवाओं और उपभोक्ताओं के बीच मध्यस्थता करता है। सेवाएँ स्थिति लौटाने के लिए ऑब्जेक्ट को इंस्टैंशिएट करती हैं, जबकि उपभोक्ता स्थिति परीक्षणों जैसे [SWS_CORE_00751] या कार्यात्मक चेनिंग जैसे [SWS_CORE_00768] के माध्यम से आगे के प्रसंस्करण को ट्रिगर करते हैं। इसके अलावा, स्थिति को [SWS_CORE_00770] (Ok) और [SWS_CORE_00772] (Err) के माध्यम से ara::core::Optional में परिवर्तित किया जा सकता है।
ara::core::Result निहित डेटा का अनन्य रूप से स्वामी है और इसके जीवनकाल का प्रबंधन करता है। यह कॉपी और मूव कंस्ट्रक्टरों ([SWS_CORE_00725], [SWS_CORE_00726]) और संबंधित असाइनमेंट ऑपरेटरों ([SWS_CORE_00741], [SWS_CORE_00742]) के माध्यम से पूर्ण मान शब्दार्थ (value semantics) का समर्थन करता है। मौजूदा इंस्टेंसों की सामग्री का परिवर्तन Swap[SWS_CORE_00745] के माध्यम से या EmplaceValue[SWS_CORE_00743] अथवा EmplaceError[SWS_CORE_00744] के माध्यम से इन-प्लेस ओवरराइटिंग द्वारा संभव है।
डिस्ट्रक्टर सक्रिय तत्व को मुक्त करता है और इसे मामूली रूप से विनिष्ट करने योग्य (trivially destructible) माना जाता है यदि T और E दोनों मामूली रूप से विनिष्ट करने योग्य हों [SWS_CORE_00727]। समवर्ती निष्पादन के संबंध में, विशुद्ध रूप से पढ़ने वाले एक्सेस थ्रेड-सुरक्षित हैं, जबकि संशोधित करने वाले संचालन जैसे EmplaceValue, EmplaceError, मूव असाइनमेंट या Swap थ्रेड-सुरक्षित नहीं हैं और बाहरी सिंक्रोनाइज़ेशन की आवश्यकता होती है।
नियमित प्रक्रिया में परिणाम का निर्माण, सत्यापन और निष्कर्षण शामिल है:
प्रावधान: एक सेवा [SWS_CORE_00731] या [SWS_CORE_00734] के माध्यम से परिणाम उत्पन्न करती है और इंस्टेंस को मान द्वारा वापस करती है।
स्थिति जांच: कॉलर HasValue()[SWS_CORE_00751] या स्पष्ट रूपांतरण ऑपरेटर operator bool()[SWS_CORE_00752] का उपयोग करके जाँच करता है कि कोई मान मौजूद है या नहीं। यदि T स्वयं प्रकार bool का है, तो पश्चात्वर्ती निष्क्रिय हो जाता है।
कार्यात्मक परिवर्तन: वैकल्पिक रूप से, Bind()[SWS_CORE_00768] एक मोनाडिक आगे के प्रसंस्करण की अनुमति देता है: पास किया गया कॉलेबल केवल तभी निष्पादित होता है जब कोई उपयोगी मान समाहित हो; मौजूदा त्रुटि को नए Result इंस्टेंस में अपरिवर्तित रूप से प्रचारित किया जाता है। फ़ॉलबैक्स को Resolve()[SWS_CORE_00767] के साथ मैप किया जा सकता है।
उपलब्ध पेलोड मान होने पर Error() को कॉल करने से उल्लंघन ResultWithNoErrorViolation होता है ([SWS_CORE_00757], [SWS_CORE_00776])।
व्याख्या: रनटाइम परिवेशों में इस तरह के पूर्वशर्त उल्लंघन को ट्रिगर करने से आम तौर पर तत्काल प्रक्रिया समाप्ति (process termination) होने की संभावना है, क्योंकि मानक इन स्थितियों को गंभीर प्रोग्रामिंग त्रुटियों के रूप में वर्गीकृत करता है। प्रश्न Q-15376f67084c4be6 (खुला) हार्ड टर्मिनेशन से बचने के लिए, रक्षात्मक विधियों का उपयोग किया जा सकता है: अनुपस्थित तत्व की स्थिति में ValueOr() ([SWS_CORE_00761], [SWS_CORE_00762]) और ErrorOr() ([SWS_CORE_00763], [SWS_CORE_00764]) एक पूर्व-निर्दिष्ट डिफ़ॉल्ट मान लौटाते हैं। वैकल्पिक रूप जैसे Ok() ([SWS_CORE_00770], [SWS_CORE_00771]) और Err() ([SWS_CORE_00772], [SWS_CORE_00773]) एक्सेस को बिना अपवाद के एनकैप्सुलेट करते हैं।
यदि अपवाद हैंडलिंग वांछित है, तो त्रुटि होने पर ValueOrThrow() ([SWS_CORE_00766], [SWS_CORE_00769], [SWS_CORE_00778]) त्रुटि से जुड़े C++ अपवाद को फेंकता है। यदि कंपाइलर में C++ अपवाद अक्षम हैं, तो ValueOrThrow() को ओवरलोड रिज़ॉल्यूशन से हटा दिया जाता है [SWS_CORE_00766]; इसी तरह, इस मामले में operator* का गैर-निरंतर lvalue ओवरलोड निष्क्रिय हो जाता है [SWS_CORE_00774]।
यह मार्गदर्शिका AUTOSAR Adaptive R25-11 की विनिर्देश आवश्यकताओं के आधार पर एक AI क्यूरेशन सहायक द्वारा तैयार की गई थी।
Return the contained value or the given default value. If *this contains a value, it is returned. Otherwise, the specified default value is returned, static_cast’d to T
Return the contained error or the given default error. If *this contains an error, it is returned. Otherwise, the specified default error is returned, static_cast’d to E
Apply the given Callable to the value of this instance, and return a new ara::core:: Result with the result of the call.
The Callable is expected to be compatible to one of these two interfaces: • Result<XXX, E> f(const T&); • <ARTechTerm{XXX f(const T&);}> • <ARNewline{}> • <ARNewline{}> • <ARTechTerm{Callable}> • Result<XXX> or a XXX directly, where XXX can be any type that is suitable for use by ara::core::Result.
The return type of this function is decltype(f(Value())) for a template argument F that returns a ara::core::Result type, and it is Result<decltype(f(Value())), E> for a template argument F that does not return a ara::core::Result type.
If this instance does not contain a value, a new Result<XXX, E> is still created and returned, with the original error contents of this instance being copied into the new instance.}>}
Return the contained error or the given default error. If *this contains an error, it is returned. Otherwise, the specified default error is returned, static_cast’d to E
Return the contained error or the given default error. If *this contains an error, it is std:: move’d into the return value. Otherwise, the specified default error is returned, static_cast’d to E
Build a new ara::core::Result from an error that is constructed in-place from the given arguments. This function shall not participate in overload resolution unless: • std::is_constructible<E, Args&&...>::value == true and • the first type of the expanded parameter pack is not E and • the first type of the expanded parameter pack is not a specialization of ara::core::Result
Build a new ara::core::Result from a value that is constructed in-place from the given arguments. This function shall not participate in overload resolution unless: • std::is_constructible<T, Args&&...>::value == true and • the first type of the expanded parameter pack is not T and • the first type of the expanded parameter pack is not a specialization of ara::core::Result
Return the contained value or return the result of a function call.
If *this contains a value, it is returned. Otherwise, the specified callable is invoked and its return value which is to be compatible to type T is returned from this function.
The Callable is expected to be compatible to this interface: T f(const E&);
Return the contained value or the given default value. If *this contains a value, it is returned. Otherwise, the specified default value is returned, static_cast’d to T
Return the contained value or the given default value. If *this contains a value, it is returned. Otherwise, the specified default value is returned, static_cast’d to T
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 38c9cb36d652उद्गमखुले प्रश्न (1)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
उपयोग और कॉल
क्लास ara::core::Result ([SWS_CORE_00766]) का सिंक्रोनस मेंबर फ़ंक्शन ValueOrThrow हेडर ara/core/result.h के माध्यम से शामिल किया जाता है ([SWS_CORE_00766])। इसे एक कॉन्सटेंट Lvalue इंस्टेंस पर बिना पैरामीटर के कॉल किया जाता है और यह ऑब्जेक्ट में संग्रहीत मान के लिए एक कॉन्सटेंट संदर्भ (const T &) लौटाता है ([SWS_CORE_00766])।
त्रुटि प्रबंधन और अपवाद व्यवहार
यदि Result इंस्टेंस में कोई मान नहीं है, बल्कि एक त्रुटि स्थिति है, तो फ़ंक्शन त्रुटि से जुड़े C++ अपवाद को फेंकता है ([SWS_CORE_00766])। विनिर्देश फ़ंक्शन को अपवाद-सुरक्षित नहीं (not exception safe) के रूप में वर्गीकृत करता है ([SWS_CORE_00766]); व्याख्या: यह वर्गीकरण संभवतः इस तथ्य के कारण है कि त्रुटि के मामले में इच्छित अनुसार एक अपवाद ट्रिगर किया जाता है। प्रश्न Q-0f4ebba70af6e48c (खुला)
समवर्तीता और प्रतिबंध
ऑपरेशन को थ्रेड-सुरक्षित (thread-safe) के रूप में निर्दिष्ट किया गया है ([SWS_CORE_00766])। एक आवश्यक सीमा शर्त के रूप में: यदि कंपाइलर टूलचेन में C++ अपवाद अक्षम हैं, तो यह फ़ंक्शन ओवरलोड रिज़ॉल्यूशन (overload resolution) में भाग नहीं लेता है ([SWS_CORE_00766])।
Result फ्रेमवर्क में परस्पर क्रिया
फ़ंक्शन ara::core::Result के भीतर संबंधित ओवरलोड और विशेषज्ञताओं का पूरक है:
परिवर्तनीय Lvalues के लिए, T & की वापसी वाला संस्करण मौजूद है ([SWS_CORE_00778])।
Rvalue इंस्टेंस के लिए, T && की वापसी वाला मूव ओवरलोड उपलब्ध है ([SWS_CORE_00769])।
void परिणामों के लिए, बिना रिटर्न मान के विशेषज्ञता ara::core::Result<void, E> मौजूद है ([SWS_CORE_00866])।
संदर्भ प्रकारों ara::core::Result<T &, E> के लिए, संबंधित कॉन्सटेंट और नॉन-कॉन्सटेंट संदर्भ ओवरलोड उपलब्ध हैं ([SWS_CORE_00938], [SWS_CORE_00949])।
यह उपयोग नोट स्वचालित रूप से जनरेट किया गया था और एक मार्गदर्शन के रूप में कार्य करता है। केवल AUTOSAR के विनिर्देश ही बाध्यकारी हैं।
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: bf00696cade5उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
मेंबर फ़ंक्शन ValueOrThrow() && हेडर #include "ara/core/result.h" के माध्यम से प्रदान किया जाता है और ara::core::Result इंस्टेंस में समाहित मान तक सिंक्रोनस पहुंच के लिए उपयोग किया जाता है ([SWS_CORE_00769])। Rvalue क्वालिफिकेशन (&&) के कारण, यह फ़ंक्शन Rvalue ऑब्जेक्ट्स पर कॉल किया जाता है और शामिल मान के लिए एक Rvalue संदर्भ (T &&) लौटाता है [SWS_CORE_00769]।
त्रुटि प्रबंधन और सीमा शर्तें
यदि Result ऑब्जेक्ट में कोई त्रुटि मान है, तो मेथड त्रुटि से जुड़े अपवाद प्रकार को थ्रो करता है ([SWS_CORE_00769])। विनिर्देश निष्पादन को अपवाद-सुरक्षित नहीं (not exception safe) के रूप में वर्गीकृत करता है, लेकिन इसे स्पष्ट रूप से थ्रेड-सुरक्षित (thread-safe) [SWS_CORE_00769] के रूप में परिभाषित करता है। एक बाध्यकारी आवश्यकता टूलचेन से संबंधित है: यदि कंपाइलर में C++ अपवाद अक्षम हैं, तो फ़ंक्शन को किसी भी स्थिति में ओवरलोड रिज़ॉल्यूशन में भाग नहीं लेना चाहिए [SWS_CORE_00769]।
ओवरलोड सेट में परस्पर क्रिया
मेथड [SWS_CORE_00769], ara::core::Result के भीतर ValueOrThrow के लिए ओवरलोड्स के एक समन्वित समूह का हिस्सा है:
Lvalues के लिए, कॉन्स्टेंट ओवरलोड [SWS_CORE_00766] (रिटर्न: const T &) और नॉन-कॉन्स्टेंट संस्करण [SWS_CORE_00778] (रिटर्न: T &) उपलब्ध हैं।
void परिणामों के लिए, विशेषज्ञता ara::core::Result<void, E> बिना रिटर्न मान के फ़ंक्शन [SWS_CORE_00866] प्रदान करती है।
संदर्भ प्रकारों के लिए, ara::core::Result<T &, E>[SWS_CORE_00938] (कॉन्स्टेंट) और [SWS_CORE_00949] (नॉन-कॉन्स्टेंट) के साथ संगत संदर्भ रिटर्न्स को कवर करता है।
यह उपयोग नोट AUTOSAR Adaptive R25-11 के विनिर्देश के आधार पर स्वचालित रूप से जनरेट किया गया था।
Return a reference to the contained value or throw an exception.
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: ddfa99362222उद्गमखुले प्रश्न (1)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
उपयोग
क्लास ara::core::Result (हेडर #include "ara/core/result.h") का मेंबर फ़ंक्शन ValueOrThrow[SWS_CORE_00778] शामिल मान तक सिंक्रोनस पहुंच की अनुमति देता है। चूंकि फ़ंक्शन सिग्नेचर रेफ़-क्वालिफ़ायर & के साथ प्रदान किया गया है, इसलिए इसे केवल नॉन-कॉन्स्टेंट lvalue इंस्टेंसेस पर कॉल किया जा सकता है। यह किसी पास किए जाने वाले पैरामीटर की अपेक्षा नहीं करता है और समाहित मान के लिए एक परिवर्तनीय संदर्भ (T&) लौटाता है।
त्रुटि प्रबंधन और सीमा शर्तें
यदि ऑब्जेक्ट में कोई मान नहीं है, बल्कि एक त्रुटि है, तो ValueOrThrow त्रुटि से जुड़े अपवाद (noexcept(false)) को सिंक्रोनस रूप से थ्रो करता है [SWS_CORE_00778]। फ़ंक्शन को not exception safe के रूप में निर्दिष्ट किया गया है [SWS_CORE_00778]; Interpretation: इसका संभवतः अर्थ यह है कि त्रुटि होने पर नियंत्रण प्रवाह अपवाद फेंकने से बाधित होता है और कोई और पुनर्प्राप्ति या रोलबैक गारंटी प्रदान नहीं की जाती है। प्रश्न Q-11aed84264f3411f (खुला) यदि कंपाइलर टूलचेन में C++ अपवाद अक्षम हैं, तो फ़ंक्शन बाध्यकारी रूप से ओवरलोड रिज़ॉल्यूशन में भाग नहीं लेता है [SWS_CORE_00778]। समवर्तीता के संबंध में, निष्पादन को thread-safe के रूप में दर्शाया गया है [SWS_CORE_00778]।
इंटरैक्शन
यह फ़ंक्शन ara::core::Result में मान एक्सेस के लिए ओवरलोड फ़ैमिली का एक हिस्सा है:
कॉन्स्टेंट इंस्टेंसेस के लिए, const T& की वापसी वाला ओवरलोड उपलब्ध है [SWS_CORE_00766]।
rvalue ऑब्जेक्ट्स के लिए, मूव सिमेंटिक्स वाला एक संस्करण मौजूद है, जो T&& प्रदान करता है [SWS_CORE_00769]।
संदर्भ प्रकारों वाली विशेषज्ञताओं (Result<T&, E>) के लिए, परिवर्तनीय संदर्भों [SWS_CORE_00949] और कॉन्स्टेंट संदर्भों [SWS_CORE_00938] के लिए संगत ओवरलोड्स उपलब्ध हैं।
बिना मान वाले इंस्टेंसेस (Result<void, E>) में, मेथड केवल त्रुटि की उपस्थिति की जांच करता है और यदि आवश्यक हो तो अपवाद ट्रिगर करता है [SWS_CORE_00866]।
यह पाठ एक AI प्रणाली द्वारा जनरेट किया गया था और AUTOSAR Adaptive रिलीज़ R25-11 के विनिर्देश पर आधारित है।
gemini-3.8-flash-low· 2026-10-13 · जर्मन मूल