وحدة ara::core — Adaptive Platform Core
دليل الوحدةمولَّد بالذكاء الاصطناعي
يوفر أنواع C++ الأساسية على مستوى المنصة، وأنواع النتائج الآمنة من الأعطال، وتجمعات ذاكرة حتمية.
يوفر أنواع C++ الأساسية على مستوى المنصة، وأنواع النتائج الآمنة من الأعطال، وتجمعات ذاكرة حتمية.
توفر الوحدة core الأنواع الأساسية على مستوى المنصة، وتجمعات ذاكرة PMR، وعناصر المزامنة الأولية غير المتزامنة Future وPromise لـ AUTOSAR Adaptive Platform (SWArchitecture ص. 60، [SWS_CORE_00326]). ولتلبية متطلبات الأمان والوقت الفعلي الصارمة، يستبدل نوع المجموع Result<T, E> الاستثناءات التقليدية بقيم إرجاع حتمية ([SWS_CORE_00751]). وفي حالة أخطاء النظام غير القابلة للإصلاح، تضمن دالة Fail-Fast Abort() الإنهاء الفوري والمنضبط للعملية ([SWS_CORE_00052]).
تعمل الوحدة core كعنقود وظيفي أساسي لـ AUTOSAR Adaptive Platform، وتوفر بنى بيانات موحدة، وعناصر اتصال أولية غير متزامنة، وآليات لإدارة الذاكرة لجميع خدمات المنصة وتطبيقاتها (SWArchitecture ص. 60). ولضمان التسلسلات الحتمية والسلامة الوظيفية في بيئات أنظمة تشغيل POSIX، يستبدل core استثناءات C++ التقليدية بنوع النتيجة الآمن نوعيًا Result<T, E> ويتحكم في تخصيصات الذاكرة الديناميكية عبر مخصصات متعددة الأشكال ([SWS_CORE_00041]، [SWS_CORE_00751]).
مخطط السياق: تضمين العنقود الوظيفي ara::core ومجالات واجهاته في Adaptive Platform. المصادر: SWArchitecture ص. 60، SWArchitecture ص. 36
للمزامنة المتزامنة، يطبق core التفاعل بين Future وPromise ([SWS_CORE_00326]، [SWS_CORE_00344]). وبينما يوفر المُنتِج حالة الحساب أو الأخطاء عبر Promise، يتيح Future للمُستهلِك الاستعلامات المراقبة زمنيًا عبر wait_for() بالإضافة إلى إعادة التوجيه التفاعلي بواسطة then() ([SWS_CORE_00329]، [SWS_CORE_00331]، TimeSynchronization ص. 90).
مخطط النشاط: مسار التقييم الحتمي لكائن Result في الحالة الخالية من الأخطاء وفي حالة الخطأ. المصادر: [SWS_CORE_00751]، [SWS_CORE_00755]، [SWS_CORE_00757]، [SWS_CORE_00766]
لتجنب التجزئة، توفر الوحدة موارد تجمعات مثل SynchronizedPoolResource وUnsynchronizedPoolResource، والتي تقيد التخصيصات بكتل ذات حجم ثابت ([SWS_CORE_00030]، [SWS_CORE_00067]، SWArchitecture ص. 61). وإذا حدثت حالة خطأ لا يمكن التغلب عليها، تفرض المنصة عبر Abort()، مع التنفيذ المسبق لـ AbortHandler مسجل، إنهاء العملية فورًا بأسلوب Fail-Fast ([SWS_CORE_00051]، [SWS_CORE_00052]).
دور النظام والأساس المعماري لـ ara::core
تشكل الوحدة core الأساس الجوهري لـ AUTOSAR Adaptive Platform وتوفر تعريفات الأنواع الأساسية، وآليات إدارة الذاكرة، بالإضافة إلى الواجهات الأساسية لجميع العناقيد الوظيفية وتطبيقات Adaptive Applications (SWArchitecture ص. 60). وعلى عكس الخدمات الخاصة بالتطبيق، صُممت core لتكون محلية للعملية وتحدد التجريدات الأساسية لتنفيذ برمجيات C++ قابلة للنقل وحتمية وفعالة من حيث الموارد داخل بيئات أنظمة تشغيل POSIX (SWArchitecture ص. 36).
معماريًا، تعمل الوحدة كواجهة قياسية بين وظائف نظام التشغيل القريبة من العتاد والطبقات العليا لـ Adaptive Platform (SWArchitecture ص. 60). وهنا تعالج core المتطلبات المركزية للسلامة الوظيفية (ASIL) والقدرة على العمل في الوقت الفعلي، من خلال جعل تخصيصات الذاكرة الديناميكية قابلة للتحكم والاستغناء عن الاستخدام الشامل لاستثناءات C++ في تدفق التحكم العادي ([SWS_CORE_00052]، [SWS_CORE_00751]). ويمنع توفير الأنواع الأساسية على مستوى المنصة الحلولَ المنعزلة الخاصة بين مكونات البرمجيات الوسيطة مثل ara::com أو ara::ts (ARAComAPI ص. 46، TimeSynchronization ص. 90).
مخطط السياق: تضمين العنقود الوظيفي ara::core ومجالات واجهاته في Adaptive Platform. المصادر: SWArchitecture ص. 60، SWArchitecture ص. 36
تدفقات التحكم والبيانات غير المتزامنة عبر Future وPromise
للتفاعل المتزامن والمفكك، يطبق ara::core نمط المنتج والمستهلك باستخدام Promise وFuture ([SWS_CORE_00326]، [SWS_CORE_00341]). ويمثل Promise واجهة الكتابة التي يودع من خلالها عامل غير متزامن أو هيكل اتصال (skeleton) النتيجةَ أو الخطأ ([SWS_CORE_00345]، [SWS_CORE_00353]). ويشكل Future النظير المستهلك، الذي يراقب الحالة المشتركة (Shared State) ويغلف الوصول الآمن نوعيًا إلى قيمة الإرجاع (ARAComAPI ص. 46، ARAComAPI ص. 59).
لتجنب حظر سلاسل رسائل العميل (Client Threads)، يوفر Future، بالإضافة إلى دالة الاستعلام المتزامنة والحاصرة get() ([SWS_CORE_00326])، عمليات انتظار محددة زمنيًا: يُرجع wait_for() وwait_until() مؤشر حالة من النوع FutureStatus ([SWS_CORE_00329]، [SWS_CORE_00330]، ARAComAPI ص. 1). ومن خلال الدالة then()، يمكن تسجيل دوال رد اتصال (Callbacks) يتم تنفيذها تلقائيًا عند وصول النتيجة؛ ويمكن اختياريًا تضمين Executor مخصص من قبل المستخدم لتوجيه التنفيذ إلى تجمعات سلاسل رسائل (Thread Pools) محددة ([SWS_CORE_00024]، [SWS_CORE_00331]، [SWS_CORE_00337]). تم حظر عمليات النسخ صراحةً لـ Future وPromise لضمان علاقات الملكية الحصرية ([SWS_CORE_00334]، [SWS_CORE_00350]).
مخطط تسلسلي: نقل غير متزامن للقيم والأخطاء بين العامل والتطبيق عبر Promise وFuture. المصادر: [SWS_CORE_00326]، [SWS_CORE_00329]، [SWS_CORE_00344]، [SWS_CORE_00345]، TimeSynchronization ص. 90
إدارة الأخطاء الحتمية: Result وErrorCode وErrorDomain
يعد التجنب الصارم للاستثناءات غير المنضبطة في التشغيل العادي جانبًا أساسيًا من البرمجة الموجهة نحو السلامة في Adaptive Platform. يعمل ara::core::Result<T, E> كتغليف لنوع مجموع آمن الأنواع (Type-safe Sum Type)، يحتوي إما على قيمة حمولة ناجحة من النوع T أو كائن خطأ من النوع E ([SWS_CORE_00721]، [SWS_CORE_00723]، [SWS_CORE_00751]). تتوفر تخصيصات لكل من الأنواع المرجعية Result<T&, E> والعمليات التي لا تُرجع قيمة Result<void, E> ([SWS_CORE_00821]، [SWS_CORE_00908]).
يتم فحص الحالة المتضمنة عبر HasValue() أو معامل التحويل الصريح operator bool() ([SWS_CORE_00751]، [SWS_CORE_00752]). ويتم الوصول إلى البيانات المفيدة عبر Value() أو operator*()، بينما يتم الاستعلام عن الأخطاء عبر Error() ([SWS_CORE_00755]، [SWS_CORE_00757]). ولمتابعة المعالجة الوظيفية وتمرير الأخطاء، يوفر Result دوالاً مثل Bind() وValueOr() وResolve() ([SWS_CORE_00761]، [SWS_CORE_00768]). وتُنمذج الأخطاء عبر ErrorCode، الذي يربط رمز خطأ رقميًا CodeType بمعرّف نطاق فريد ErrorDomain بالإضافة إلى بيانات تشخيصية إضافية اختيارية SupportDataType ([SWS_CORE_00121]، [SWS_CORE_00122]، [SWS_CORE_00512]). توجد الدالة ValueOrThrow() كجسر للبيئات التي تم فيها تمكين معالجة الاستثناءات، ولكنها تطلق في حالة الخطأ الاستثناء المرتبط بالنطاق ([SWS_CORE_00154]، [SWS_CORE_00766]).
مخطط النشاط: مسار التقييم الحتمي لكائن Result في الحالة الخالية من الأخطاء وفي حالة الخطأ. المصادر: [SWS_CORE_00751]، [SWS_CORE_00755]، [SWS_CORE_00757]، [SWS_CORE_00766]
إدارة الذاكرة متعددة الأشكال عبر موارد التجمع (Pool Resources)
ينطوي التخصيص الديناميكي على الكومة القياسية (Standard Heap) على مخاطر تتعلق بعدم الحتمية وتجزئة الذاكرة. لذلك، يدمج ara::core إدارة ذاكرة تستند إلى موارد الذاكرة متعددة الأشكال (PMR)، استنادًا إلى نمط C++-NVI (Non-Virtual Interface) (SWArchitecture ص. 61). تصرح الفئة الأساسية MemoryResource عن الواجهات العامة allocate() وdeallocate()، والتي توجه داخليًا الدوال الافتراضية الصرفة do_allocate() وdo_deallocate() ([SWS_CORE_00041]، [SWS_CORE_00061]).
تتوفر موارد تجمع متخصصة لأنماط التخصيص الحرجة في الوقت الفعلي: يوفر SynchronizedPoolResource تخصيصات آمنة لسلاسل الرسائل (Thread-safe) من كتل وأحجام كتل مهيأة مسبقًا عبر PoolOptions ([SWS_CORE_00027]، [SWS_CORE_00030]). بينما يُستخدم UnsynchronizedPoolResource لمراحل المعالجة المحلية الصارمة لسلسلة الرسائل دون تحميل مزامنة إضافي ([SWS_CORE_00046]، [SWS_CORE_00067]). وعبر release()، يمكن إرجاع كامل مساحة الذاكرة المخصصة في خطوة واحدة إلى upstream_resource() الأولية، مما يمنع بفعالية تسرب الذاكرة في مهام سير العمل الموجهة نحو المراحل ([SWS_CORE_00037]، [SWS_CORE_00038]، [SWS_CORE_00065]).
مخطط فئات: تسلسل هرمي لموارد الذاكرة متعددة الأشكال وفقًا لنمط Non-Virtual Interface (NVI). المصادر: SWArchitecture ص. 61، [SWS_CORE_00030]، [SWS_CORE_00041]، [SWS_CORE_00061]
أنواع الأدوات والحاويات الأساسية (Optional وArray وVector وMap)
لتجنب السلوك غير المعرّف ولضمان دلالات واضحة، يضع core معايير للحاويات وأنواع الأدوات المساعدة الأساسية. يمثل ara::core::Optional<T> قيمًا قد تكون موجودة أو غير موجودة، دون الحاجة إلى اللجوء إلى مؤشرات فارغة (Null Pointers) غير آمنة ([SWS_CORE_01103]، [SWS_CORE_01104]، ARAComAPI ص. 1). يتم الاستعلام عن الحالة عبر has_value() أو operator bool()، بينما تتم عمليات الوصول عبر value() أو value_or() أو operator*() ([SWS_CORE_01128]، [SWS_CORE_01129]، [SWS_CORE_01130]، [SWS_CORE_01134]). وتسمح التحميلات الزائدة الخاصة بالمراجع Optional<T&> بالاحتفاظ الآمن بمراجع اختيارية ([SWS_CORE_01151]، [SWS_CORE_01167]).
بالنسبة لهياكل البيانات ذات الحجم الثابت، توفر الوحدة Array<T, N>، التي تدعم الفهرسة المباشرة عبر operator[]، والوصول المفحوص النطاق بواسطة at()، بالإضافة إلى المكررات القياسية ([SWS_CORE_01250]، [SWS_CORE_01265]، [SWS_CORE_01273]). تم تنفيذ معاملات المقارنة وفقًا لإرشادات ترميز صارمة مع مخرجات bool وأمان الاستثناءات ([SWS_CORE_01290]، CPP14Guidelines ص. 241). وتتم تغطية التسلسلات المتنامية ديناميكيًا والحاويات الترابطية بواسطة Vector<T, Allocator> وMap<Key, T, Compare, Allocator> ([SWS_CORE_01318]، [SWS_CORE_01428]). يقبل كلا النوعين مخصصات قابلة للتهيئة، بحيث يمكن تنفيذ التخصيصات بسلاسة عبر تجمعات MemoryResource متعددة الأشكال ([SWS_CORE_00066]، [SWS_CORE_01303]، [SWS_CORE_01406]).
السلوك في حالة الخطأ والإنهاء السريع عند الفشل (Fail-Fast)
إذا تعذر على العملية تعويض حالة خطأ جسيمة بشكل آمن، يُطبق مبدأ الإنهاء السريع عند الفشل (Fail-Fast) الخاص بـ Adaptive Platform (SWArchitecture ص. 60). ومن خلال الواجهة Abort()، يتم إحداث الإنهاء الفوري وغير المشروط للعملية الجارية ([SWS_CORE_00052]). تم التصريح عن الدالة كـ [[noreturn]] وnoexcept لضمان عدم قيام روتينات إلغاء تدرج مكدس الذاكرة (Stack Unwinding) أو المدمرات (Destructors) بإنشاء حالات لاحقة غير صحيحة ([SWS_CORE_00052]، SWArchitecture ص. 36).
لحفظ المعلومات التشخيصية المؤقتة قبل الإنهاء أو لتنفيذ إجراءات تسجيل الطوارئ الأخيرة، يمكن للتطبيقات تسجيل دوال رد اتصال مخصصة من قبل المستخدم عبر SetAbortHandler() أو AddAbortHandler() ([SWS_CORE_00050]، [SWS_CORE_00051]، [SWS_CORE_00054]). يجب أن يتوافق معالج الإلغاء المسجل مع البنية void() noexcept ([SWS_CORE_00053]). بعد تنفيذ المعالج، تفرض المنصة الإنهاء النهائي للعملية، بحيث لا يمكن الاستمرار في حالة ذاكرة غير معرّفة (SWArchitecture ص. 60).
مخطط نشاط: تدفق التحكم في الإلغاء السريع عند الفشل عبر ()Abort مع تنفيذ AbortHandler. المصادر: SWArchitecture ص. 60، [SWS_CORE_00051]، [SWS_CORE_00052]
أدلة تفصيلية إضافية
تستند مواصفات core في الإصدار R25-11 إلى مجموعة من المعايير الإلزامية والنماذج المعمارية. بالنسبة لدورة حياة العملية وسلوك التوقف في حالات الطوارئ، فإن Initialize() وDeinitialize() بالإضافة إلى Abort() وSetAbortHandler() تعد تأسيسية ([SWS_CORE_00051]، [SWS_CORE_00052]، SWArchitecture ص. 60). ويستند نموذج الاتصال غير المتزامن بشكل أساسي إلى Future ([SWS_CORE_00326]، [SWS_CORE_00329]) وPromise ([SWS_CORE_00344]، [SWS_CORE_00345])، اللذين يتم التحقق من تفاعلهما في مجموعات قريبة من التطبيق مثل ara::com وara::ts (ARAComAPI ص. 46، TimeSynchronization ص. 90).
تتم تسوية إدارة البيانات والذاكرة الخالية من الأخطاء من خلال مواصفات Result ([SWS_CORE_00751]، [SWS_CORE_00766]) وErrorCode ([SWS_CORE_00512]) وفئات ذاكرة PMR SynchronizedPoolResource وUnsynchronizedPoolResource ([SWS_CORE_00030]، [SWS_CORE_00046]، SWArchitecture ص. 61). بالإضافة إلى ذلك، تحدد إرشادات الحاويات والمقارنة حفظ البيانات الحتمي في الأنظمة الإجمالية الحرجة للسلامة ([SWS_CORE_01103]، [SWS_CORE_01250]، [SWS_CORE_01318]، CPP14Guidelines ص. 241).
تم إنشاء هذا الدليل بواسطة مساعد تنظيم قائم على الذكاء الاصطناعي استنادًا إلى مواصفات AUTOSAR للإصدار R25-11.
function: 1060 type alias: 101 class: 34 struct: 26 variable: 13 enumeration: 3
ara::core::literals::string_view_literals
string_view_hash (std)tuple_elementtuple_sizeالفئات
ArrayBasicStringBitsetCoreErrorDomainCoreExceptionErrorCodeErrorDomainExceptionExecutorFutureFutureErrorDomainFutureExceptionhashhash (std)in_place_index_tin_place_tin_place_type_tInstanceSpecifieris_nothrow_swappableMapMemoryResourceMonostateMonotonicBufferResourcenullopt_tOptionalPolymorphicAllocatorPoolOptionsPromiseResultSpanSteadyClockStringViewSynchronizedPoolResourcetuple_elementtuple_sizeUnsynchronizedPoolResourceVariantvariant_alternativevariant_sizeVectorالدوال
AbortAbortHandlerPrototypeAddAbortHandleras_bytesas_writable_bytesdataDeinitializeemptyGetCoreErrorDomainGetDefaultResourceGetFutureErrorDomainInitializeNewDeleteResourceNullMemoryResourceSetAbortHandlerSetDefaultResourcesizestring_view_الأنواع
AbortHandlerByteStringvariant_alternative_tالتعدادات
CoreErrcFutureErrcFutureStatusالثوابت
dynamic_extentin_placein_place_indexin_place_typenulloptvariant_size_vخريطة المواضيع
ara::core
67لا توجد بيانات عناصر لهذا الإصدار
ara::core
Implementation of std::array type from [array.syn] The implicitly-declared special member functions specified in [array.cons] are not expli ≙ std::array
الوصول get 4
template <std::size_t I, typename T, std::size_t N> constexpr T & get (Array< T, N > &a) noexcept; SWS_CORE_01282template <std::size_t I, typename T, std::size_t N> constexpr T && get (Array< T, N > &&a) noexcept; SWS_CORE_01283template <std::size_t I, typename T, std::size_t N> constexpr T const & get (const Array< T, N > &a) noexcept; SWS_CORE_01284template <size_t I, class T, size_t N> constexpr const T && get (const Array< T, N > &&) noexcept; SWS_CORE_01286المقارنة != < <= == > >= 6
template <typename T, std::size_t N> bool operator!= (const Array< T, N > &lhs, const Array< T, N > &rhs) noexcept(noexcept(std::declval< T & >()==std::declval< T & >())); SWS_CORE_01291template <typename T, std::size_t N> bool operator< (const Array< T, N > &lhs, const Array< T, N > &rhs) noexcept(noexcept(std::declval< T & >()==std::declval< T & >())); SWS_CORE_01292template <typename T, std::size_t N> bool operator<= (const Array< T, N > &lhs, const Array< T, N > &rhs) noexcept(noexcept(std::declval< T & >()==std::declval< T & >())); SWS_CORE_01294template <typename T, std::size_t N> bool operator== (const Array< T, N > &lhs, const Array< T, N > &rhs) noexcept(noexcept(std::declval< T & >()==std::declval< T & >())); SWS_CORE_01290template <typename T, std::size_t N> bool operator> (const Array< T, N > &lhs, const Array< T, N > &rhs) noexcept(noexcept(std::declval< T & >()==std::declval< T & >())); SWS_CORE_01293template <typename T, std::size_t N> bool operator>= (const Array< T, N > &lhs, const Array< T, N > &rhs) noexcept(noexcept(std::declval< T & >()==std::declval< T & >())); SWS_CORE_01295التبديل swap 1
template <typename T, std::size_t N> void swap (Array< T, N > &lhs, Array< T, N > &rhs) noexcept(noexcept(lhs.swap(rhs))); SWS_CORE_01296Implementation of std::pmr::basic_string type from [basic.string] ≙ std::pmr::basic_string
المقارنة != < <= == > >= 18
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator!= (const BasicString< Allocator > &lhs, const Basic String< Allocator > &rhs) noexcept; SWS_CORE_03367template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator!= (const charT *lhs, const BasicString< Allocator > &rhs); SWS_CORE_03368template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator!= (const BasicString< Allocator > &lhs, const charT *rhs); SWS_CORE_03369template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator< (const BasicString< Allocator > &lhs, const Basic String< Allocator > &rhs) noexcept; SWS_CORE_03370template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator< (const BasicString< Allocator > &lhs, const charT *rhs); SWS_CORE_03371template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator< (const charT *lhs, const BasicString< Allocator > &rhs); SWS_CORE_03372template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator<= (const BasicString< Allocator > &lhs, const Basic String< Allocator > &rhs) noexcept; SWS_CORE_03376template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator<= (const BasicString< Allocator > &lhs, const charT *rhs); SWS_CORE_03377template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator<= (const charT *lhs, const BasicString< Allocator > &rhs); SWS_CORE_03378template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator== (const BasicString< Allocator > &lhs, const Basic String< Allocator > &rhs) noexcept; SWS_CORE_03364template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator== (const charT *lhs, const BasicString< Allocator > &rhs); SWS_CORE_03365template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator== (const BasicString< Allocator > &lhs, const charT *rhs); SWS_CORE_03366template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator> (const BasicString< Allocator > &lhs, const Basic String< Allocator > &rhs) noexcept; SWS_CORE_03373template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator> (const BasicString< Allocator > &lhs, const charT *rhs); SWS_CORE_03374template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator> (const charT *lhs, const BasicString< Allocator > &rhs); SWS_CORE_03375template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator>= (const BasicString< Allocator > &lhs, const Basic String< Allocator > &rhs) noexcept; SWS_CORE_03379template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator>= (const BasicString< Allocator > &lhs, const charT *rhs); SWS_CORE_03380template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator>= (const charT *lhs, const BasicString< Allocator > &rhs); SWS_CORE_03381الدمج + 12
template <typename Allocator> BasicString< Allocator > operator+ (const BasicString< Allocator > &lhs, const BasicString< Allocator > &rhs); SWS_CORE_03352template <typename Allocator> BasicString< Allocator > operator+ (BasicString< Allocator > &&lhs, const BasicString< Allocator > &rhs); SWS_CORE_03353template <typename Allocator> BasicString< Allocator > operator+ (const BasicString< Allocator > &lhs, BasicString< Allocator > &&rhs); SWS_CORE_03354template <typename Allocator> BasicString< Allocator > operator+ (BasicString< Allocator > &&lhs, BasicString< Allocator > &&rhs); SWS_CORE_03355template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> BasicString< Allocator > operator+ (const charT *lhs, const Basic String< Allocator > &rhs); SWS_CORE_03356template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> BasicString< Allocator > operator+ (const charT *lhs, BasicString< Allocator > &&rhs); SWS_CORE_03357template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> BasicString< Allocator > operator+ (charT lhs, const BasicString< Allocator > &rhs); SWS_CORE_03358template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> BasicString< Allocator > operator+ (charT lhs, BasicString< Allocator > &&rhs); SWS_CORE_03359template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> BasicString< Allocator > operator+ (const BasicString< Allocator > &lhs, const charT *rhs); SWS_CORE_03360template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> BasicString< Allocator > operator+ (BasicString< Allocator > &&lhs, const charT *rhs); SWS_CORE_03361template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> BasicString< Allocator > operator+ (const BasicString< Allocator > &lhs, charT rhs); SWS_CORE_03362template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> BasicString< Allocator > operator+ (BasicString< Allocator > &&lhs, charT rhs); SWS_CORE_03363الإدخال/الإخراج getline << >> 6
template <class charT = char, class traits = std::char_traits<char>, class Allocator = ara::core::PolymorphicAllocator<char>> std::basic_istream< charT, traits > & getline (std::basic_istream< charT, traits > &is, BasicString< Allocator > &str, charT delim); SWS_CORE_03401template <class charT = char, class traits = std::char_traits<char>, class Allocator = ara::core::PolymorphicAllocator<char>> std::basic_istream< charT, traits > & getline (std::basic_istream< charT, traits > &&is, BasicString< Allocator > &str, charT delim); SWS_CORE_03402template <class charT = char, class traits = std::char_traits<char>, class Allocator = ara::core::PolymorphicAllocator<char>> std::basic_istream< charT, traits > & getline (std::basic_istream< charT, traits > &is, BasicString< Allocator > &str); SWS_CORE_03403template <class charT = char, class traits = std::char_traits<char>, class Allocator = ara::core::PolymorphicAllocator<char>> std::basic_istream< charT, traits > & getline (std::basic_istream< charT, traits > &&is, BasicString< Allocator > &str); SWS_CORE_03404template <class charT = char, class traits = std::char_traits<char>, class Allocator = ara::core::PolymorphicAllocator<char>> std::basic_ostream< charT, traits > & operator<< (std::basic_ostream< charT, traits > &os, const BasicString< Allocator > &str); SWS_CORE_03400template <class charT = char, class traits = std::char_traits<char>, class Allocator = ara::core::PolymorphicAllocator<char>> std::basic_istream< charT, traits > & operator>> (std::basic_istream< charT, traits > &is, BasicString< Allocator > &str); SWS_CORE_03399التحويل to_string 9
String to_string (int val); SWS_CORE_03382String to_string (unsigned val); SWS_CORE_03383String to_string (long val); SWS_CORE_03384String to_string (unsigned long val); SWS_CORE_03385String to_string (long long val); SWS_CORE_03386String to_string (unsigned long long val); SWS_CORE_03387String to_string (float val); SWS_CORE_03388String to_string (double val); SWS_CORE_03389String to_string (long double val); SWS_CORE_03390التبديل swap 1
template <typename Allocator> void swap (BasicString< Allocator > &lhs, BasicString< Allocator > &rhs); SWS_CORE_03296أخرى stod stof stoi stol stold stoll stoul stoull 8
double stod (const ara::core::String &str, size_t *idx=nullptr); SWS_CORE_03397float stof (const ara::core::String &str, size_t *idx=nullptr); SWS_CORE_03396int stoi (const ara::core::String &str, size_t *idx=nullptr, int base=10); SWS_CORE_03391long stol (const ara::core::String &str, size_t *idx=nullptr, int base=10); SWS_CORE_03392long double stold (const ara::core::String &str, size_t *idx=nullptr); SWS_CORE_03398long long stoll (const ara::core::String &str, size_t *idx=nullptr, int base=10); SWS_CORE_03394unsigned long stoul (const ara::core::String &str, size_t *idx=nullptr, int base=10); SWS_CORE_03393unsigned long long stoull (const ara::core::String &str, size_t *idx=nullptr, int base=10); SWS_CORE_03395Implementation of std::bitset type from [bitset] ≙ std::bitset
الإدخال/الإخراج << >> 2
template <class CharT = char, class Traits = std::char_traits<CharT>, std::size_t N> std::basic_ostream< CharT, Traits > & operator<< (std::basic_ostream< CharT, Traits > &os, const Bitset< N > &x); SWS_CORE_01756template <class CharT, class Traits, std::size_t N> std::basic_istream< CharT, Traits > & operator>> (std::basic_istream< CharT, Traits > &is, Bitset< N > &x); SWS_CORE_01755أخرى & | ˆ 3
template <std::size_t N> Bitset< N > operator& (const Bitset< N > &, const Bitset< N > &) noexcept; SWS_CORE_01752template <std::size_t N> Bitset< N > operator| (const Bitset< N > &, const Bitset< N > &) noexcept; SWS_CORE_01753template <std::size_t N> Bitset< N > operatorˆ (const Bitset< N > &, const Bitset< N > &) noexcept; SWS_CORE_01754An error domain for errors originating from the ara::core Functional Cluster.
يرث من ErrorDomain
Exception type thrown for ara::core errors.
يرث من Exception
Encapsulation of an error code
الإنشاء MakeErrorCode 2
constexpr ErrorCode MakeErrorCode (FutureErrc code, Error Domain::SupportDataType data) noexcept; SWS_CORE_00490constexpr ErrorCode MakeErrorCode (CoreErrc code, ErrorDomain::Support DataType data) noexcept; SWS_CORE_05290المقارنة != == 2
constexpr bool operator!= (const ErrorCode &lhs, const ErrorCode &rhs) noexcept; SWS_CORE_00572constexpr bool operator== (const ErrorCode &lhs, const ErrorCode &rhs) noexcept; SWS_CORE_00571Encapsulation of an ErrorDomain
أساس لـ CoreErrorDomain, FutureErrorDomain
Provides an interface for a executing context, which asynchronously invokes Callable ([4] [func.wrap.func]) objects in a guaranteed thread-s
Implementation of std::future from [future.syn] in [11] ≙ std::future
التخصيصات Future< void, E >
Error domain for errors originating from ara::core::Future and ara::core::Promise
يرث من ErrorDomain
Exception type thrown by ara::core::Future and ara::core::Promise
يرث من Exception
≙ [bitset]
Denote an index-distinguishing operation to be performed in-place
Denote an operation to be performed in-place
Denote a type-distinguishing operation to be performed in-place
Representation of an AUTOSAR Instance Specifier, which is basically an AUTOSAR shortName path wrapper.
المقارنة != == 2
bool operator!= (ara::core::StringView lhs, const InstanceSpecifier &rhs) noexcept; SWS_CORE_08082bool operator== (ara::core::StringView lhs, const InstanceSpecifier &rhs) noexcept; SWS_CORE_08081As per std::is_nothrow_swappable, see [meta.unary.prop] in [11] ≙ std::is_nothrow_swappable
Implementation of std::pmr::map container from [map] ≙ std::pmr::map
التبديل swap 1
template <class Key, class T, class Compare, class Allocator> void swap (Map< Key, T, Compare, Allocator > &lhs, Map< Key, T, Compare, Allocator > &rhs) noexcept(noexcept(lhs.swap(rhs))); SWS_CORE_01496Implementation of std::pmr::memory_resource type from [mem.res.class] ≙ std::pmr::memory_resource
أساس لـ MonotonicBufferResource, SynchronizedPoolResource, UnsynchronizedPoolResource
المقارنة == 1
bool operator== (const MemoryResource &a, const MemoryResource &b) noexcept; SWS_CORE_06561≙ [variant]
الوصول get get_if holds_alternative visit 15
template <std::size_t I, typename... Types> constexpr variant_alternative_t< I, Variant< Types... > > & get ( Variant< Types... > &variant) noexcept; SWS_CORE_01613template <std::size_t I, typename... Types> constexpr variant_alternative_t< I, Variant< Types... > > && get ( Variant< Types... > &&variant) noexcept; SWS_CORE_01614template <std::size_t I, typename... Types> constexpr const variant_alternative_t< I, Variant< Types... > > & get (const Variant< Types... > &variant) noexcept; SWS_CORE_01615template <std::size_t I, typename... Types> constexpr const variant_alternative_t< I, Variant< Types... > > && get (const Variant< Types... > &&variant) noexcept; SWS_CORE_01616template <typename T, typename... Types> constexpr T & get (Variant< Types... > &variant) noexcept; SWS_CORE_01617template <typename T, typename... Types> constexpr T && get (Variant< Types... > &&variant) noexcept; SWS_CORE_01618template <typename T, typename... Types> constexpr const T & get (const Variant< Types... > &variant) noexcept; SWS_CORE_01619template <typename T, typename... Types> constexpr const T && get (const Variant< Types... > &&variant) noexcept; SWS_CORE_01620template <std::size_t I, typename... Types> std::add_pointer_t< variant_alternative_t< I, Variant< Types... > > > get_if (Variant< Types... > *variant) noexcept; SWS_CORE_01621template <std::size_t I, typename... Types> std::add_pointer_t< const variant_alternative_t< I, Variant< Types... > > > get_if (const Variant< Types... > *variant) noexcept; SWS_CORE_01622template <typename T, typename... Types> std::add_pointer_t< T > get_if (Variant< Types... > *variant) noexcept; SWS_CORE_01623template <typename T, typename... Types> std::add_pointer_t< const T > get_if (const Variant< Types... > *variant) noexcept; SWS_CORE_01624template <typename T, typename... Types> constexpr bool holds_alternative (const Variant< Types... > &variant) noexcept; SWS_CORE_01626template <typename ReturnType, typename Visitor, typename... Variants> constexpr {<invoke-result-decltype-1>} visit (Visitor &&visitor, Variants &&... variants); SWS_CORE_01633template <typename Visitor, typename... Variants> constexpr {<invoke-result-decltype-2>} visit (Visitor &&visitor, Variants &&... variants); SWS_CORE_01634المقارنة != < <= == > >= 12
template <typename... Types> constexpr bool operator!= (const Variant< Types... > &lhs, const Variant< Types... > &rhs); SWS_CORE_01628constexpr bool operator!= (Monostate lhs, Monostate rhs) noexcept; SWS_CORE_01642template <typename... Types> constexpr bool operator< (const Variant< Types... > &lhs, const Variant< Types... > &rhs); SWS_CORE_01629constexpr bool operator< (Monostate lhs, Monostate rhs) noexcept; SWS_CORE_01643template <typename... Types> constexpr bool operator<= (const Variant< Types... > &lhs, const Variant< Types... > &rhs); SWS_CORE_01631constexpr bool operator<= (Monostate lhs, Monostate rhs) noexcept; SWS_CORE_01645template <typename... Types> constexpr bool operator== (const Variant< Types... > &lhs, const Variant< Types... > &rhs); SWS_CORE_01627constexpr bool operator== (Monostate lhs, Monostate rhs) noexcept; SWS_CORE_01641template <typename... Types> constexpr bool operator> (const Variant< Types... > &lhs, const Variant< Types... > &rhs); SWS_CORE_01630constexpr bool operator> (Monostate lhs, Monostate rhs) noexcept; SWS_CORE_01644template <typename... Types> constexpr bool operator>= (const Variant< Types... > &lhs, const Variant< Types... > &rhs); SWS_CORE_01632constexpr bool operator>= (Monostate lhs, Monostate rhs) noexcept; SWS_CORE_01646التبديل swap 1
template <typename... Types> void swap (Variant< Types... > &lhs, Variant< Types... > &rhs) noexcept(noexcept(lhs.swap(rhs))); SWS_CORE_01696Implementation of std::pmr::monotonic_buffer_resource type from [mem.res.monotonic.buffer] ≙ std::pmr::monotonic_buffer_resource
يرث من MemoryResource
Shall implement std::nullopt_t ≙ std::nullopt_t
Implementation of std::optional
التخصيصات Optional< T & >
الإنشاء make_optional 3
template <typename T> constexpr Optional< std::decay_t< T > > make_optional (T &&) noexcept(std::is_nothrow_move_constructible< T >::value); SWS_CORE_01138template <typename T, typename... Args> constexpr Optional< T > make_optional (Args &&... args) noexcept(std::is_nothrow_constructible< T, Args... >::value); SWS_CORE_01139template <typename T, typename U, typename... Args> constexpr Optional< T > make_optional (std::initializer_list< U > il, Args &&... args) noexcept(std::is_nothrow_constructible< T, std::initializer_list< U > &, Args &&... >::value); SWS_CORE_01140المقارنة != < <= == > >= 30
template <typename T, typename U> constexpr bool operator!= (const Optional< T > &, const Optional< U > &); SWS_CORE_01143template <typename T, typename U> constexpr bool operator!= (const Optional< T > &, const U &); SWS_CORE_01176template <typename T, typename U> constexpr bool operator!= (const U &, const Optional< T > &); SWS_CORE_01177template <typename T> constexpr bool operator!= (const Optional< T > &, nullopt_t) noexcept; SWS_CORE_01188template <typename T> constexpr bool operator!= (nullopt_t, const Optional< T > &) noexcept; SWS_CORE_01189template <typename T, typename U> constexpr bool operator< (const Optional< T > &, const Optional< U > &); SWS_CORE_01144template <typename T, typename U> constexpr bool operator< (const Optional< T > &, const U &); SWS_CORE_01178template <typename T, typename U> constexpr bool operator< (const U &, const Optional< T > &); SWS_CORE_01179template <typename T> constexpr bool operator< (const Optional< T > &, nullopt_t) noexcept; SWS_CORE_01190template <typename T> constexpr bool operator< (nullopt_t, const Optional< T > &) noexcept; SWS_CORE_01191template <typename T, typename U> constexpr bool operator<= (const Optional< T > &, const Optional< U > &); SWS_CORE_01146template <typename T, typename U> constexpr bool operator<= (const Optional< T > &, const U &); SWS_CORE_01180template <typename T, typename U> constexpr bool operator<= (const U &, const Optional< T > &); SWS_CORE_01181template <typename T> constexpr bool operator<= (const Optional< T > &, nullopt_t) noexcept; SWS_CORE_01192template <typename T> constexpr bool operator<= (nullopt_t, const Optional< T > &) noexcept; SWS_CORE_01193template <typename T, typename U> constexpr bool operator== (const Optional< T > &, const Optional< U > &); SWS_CORE_01142template <typename T, typename U> constexpr bool operator== (const Optional< T > &, const U &); SWS_CORE_01148template <typename T, typename U> constexpr bool operator== (const U &, const Optional< T > &); SWS_CORE_01149template <typename T> constexpr bool operator== (const Optional< T > &, nullopt_t) noexcept; SWS_CORE_01186template <typename T> constexpr bool operator== (nullopt_t, const Optional< T > &) noexcept; SWS_CORE_01187template <typename T, typename U> constexpr bool operator> (const Optional< T > &, const Optional< U > &); SWS_CORE_01145template <typename T, typename U> constexpr bool operator> (const Optional< T > &, const U &); SWS_CORE_01182template <typename T, typename U> constexpr bool operator> (const U &, const Optional< T > &); SWS_CORE_01183template <typename T> constexpr bool operator> (const Optional< T > &, nullopt_t) noexcept; SWS_CORE_01194template <typename T> constexpr bool operator> (nullopt_t, const Optional< T > &) noexcept; SWS_CORE_01195template <typename T, typename U> constexpr bool operator>= (const Optional< T > &, const Optional< U > &); SWS_CORE_01147template <typename T, typename U> constexpr bool operator>= (const Optional< T > &, const U &); SWS_CORE_01184template <typename T, typename U> constexpr bool operator>= (const U &, const Optional< T > &); SWS_CORE_01185template <typename T> constexpr bool operator>= (const Optional< T > &, nullopt_t) noexcept; SWS_CORE_01196template <typename T> constexpr bool operator>= (nullopt_t, const Optional< T > &) noexcept; SWS_CORE_01197التبديل swap 1
template <typename T> void swap (Optional< T > &lhs, Optional< T > &rhs) noexcept(std::is_ nothrow_move_constructible< T >::value &&std::is_nothrow_move_ assignable< T >::value); SWS_CORE_01096Implementation of std::pmr::polymorphic_allocator from [mem.poly.allocator.class] ≙ std::pmr::polymorphic_allocator
المقارنة == 1
template <class T1, class T2> bool operator== (const PolymorphicAllocator< T1 > &a, const PolymorphicAllocator< T2 > &b) noexcept; SWS_CORE_06560Implementation of std::pmr::pool_options from [mem.poly.pool_options.class] ≙ std::pmr::pool_options
ara::core specific variant of std::promise class The implementation shall flag the condition E!=ara::core::ErrorCode as a compile error. ≙ std::promise
التخصيصات Promise< void, E >
This class is a type that contains either a value or an error
التخصيصات Result< T &, E > Result< void, E >
المقارنة != == 10
template <typename T, typename E> bool operator!= (const Result< T, E > &lhs, const Result< T, E > &rhs); SWS_CORE_00781template <typename T, typename E> bool operator!= (const Result< T, E > &lhs, const T &rhs); SWS_CORE_00784template <typename T, typename E> bool operator!= (const T &lhs, const Result< T, E > &rhs); SWS_CORE_00785template <typename T, typename E> bool operator!= (const Result< T, E > &lhs, const E &rhs); SWS_CORE_00788template <typename T, typename E> bool operator!= (const E &lhs, const Result< T, E > &rhs); SWS_CORE_00789template <typename T, typename E> bool operator== (const Result< T, E > &lhs, const Result< T, E > &rhs); SWS_CORE_00780template <typename T, typename E> bool operator== (const Result< T, E > &lhs, const T &rhs); SWS_CORE_00782template <typename T, typename E> bool operator== (const T &lhs, const Result< T, E > &rhs); SWS_CORE_00783template <typename T, typename E> bool operator== (const Result< T, E > &lhs, const E &rhs); SWS_CORE_00786template <typename T, typename E> bool operator== (const E &lhs, const Result< T, E > &rhs); SWS_CORE_00787التبديل swap 1
template <typename T, typename E> void swap (Result< T, E > &lhs, Result< T, E > &rhs) noexcept(noexcept(lhs.Swap(rhs))); SWS_CORE_00796Implementation of std::span container from [views.span] ≙ std::span
الإنشاء MakeSpan 5
template <typename T> constexpr Span< T > MakeSpan (T *ptr, typename Span< T >::size_type count) noexcept; SWS_CORE_01990template <typename T> constexpr Span< T > MakeSpan (T *firstElem, T *lastElem) noexcept; SWS_CORE_01991template <typename T, std::size_t N> constexpr Span< T, N > MakeSpan (T(&arr)[N]) noexcept; SWS_CORE_01992template <typename Container> constexpr Span< typename Container::value_type > MakeSpan (Container &cont) noexcept; SWS_CORE_01993template <typename Container> constexpr Span< typename Container::value_type const > MakeSpan (const Container &cont) noexcept; SWS_CORE_01994This clock represents a monotonic clock
Implementation of std::basic_string_view type from [string.view] ≙ std::basic_string_view
المقارنة != < <= == > >= 6
constexpr bool operator!= (StringView lhs, StringView rhs) noexcept; SWS_CORE_02182constexpr bool operator< (StringView lhs, StringView rhs) noexcept; SWS_CORE_02183constexpr bool operator<= (StringView lhs, StringView rhs) noexcept; SWS_CORE_02185constexpr bool operator== (StringView lhs, StringView rhs) noexcept; SWS_CORE_02181constexpr bool operator> (StringView lhs, StringView rhs) noexcept; SWS_CORE_02184constexpr bool operator>= (StringView lhs, StringView rhs) noexcept; SWS_CORE_02186الإدخال/الإخراج << 1
std::ostream & operator<< (std::ostream &os, StringView sv); SWS_CORE_02187Implementation of std::pmr::synchronized_pool_resource from [mem.res.pool] ≙ std::pmr::synchronized_pool_resource
يرث من MemoryResource
Implementation of std::pmr::unsynchronized_pool_resource from [mem.res.pool] ≙ std::pmr::unsynchronized_pool_resource
يرث من MemoryResource
Implementation of std::variant type from [basic.string] ≙ std::variant
Implementation of std::pmr::vector container from [vector] ≙ std::pmr::vector
المقارنة != < <= == > >= 6
template <typename T, typename Allocator> bool operator!= (const Vector< T, Allocator > &lhs, const Vector< T, Allocator > &rhs); SWS_CORE_01391template <typename T, typename Allocator> bool operator< (const Vector< T, Allocator > &lhs, const Vector< T, Allocator > &rhs); SWS_CORE_01392template <typename T, typename Allocator> bool operator<= (const Vector< T, Allocator > &lhs, const Vector< T, Allocator > &rhs); SWS_CORE_01393template <typename T, typename Allocator> bool operator== (const Vector< T, Allocator > &lhs, const Vector< T, Allocator > &rhs); SWS_CORE_01390template <typename T, typename Allocator> bool operator> (const Vector< T, Allocator > &lhs, const Vector< T, Allocator > &rhs); SWS_CORE_01394template <typename T, typename Allocator> bool operator>= (const Vector< T, Allocator > &lhs, const Vector< T, Allocator > &rhs); SWS_CORE_01395التبديل swap 1
template <typename T, typename Allocator> void swap (Vector< T, Allocator > &lhs, Vector< T, Allocator > &rhs) noexcept(noexcept(lhs.swap(rhs))); SWS_CORE_01396Abort the current operation This function will never return to its caller. The stack is not unwound: destructors of variables with automatic storage duration are not called. Calling this function is ill-formed if any of the arguments is not convertible to ara::core:: StringView.
template <typename... Args> [[noreturn]] void Abort (const Args &... args) noexcept;A function declaration with the correct prototype for ara::core::SetAbortHandler This declaration exists only for providing a function type that includes noexcept and that acts as base type for a type alias, which is defined in [SWS_CORE_00050]. This compensates for the fact that the C++ standard (up to and including C++14) prohibits that noexcept appears in an alias-declaration. There is no implementation of this function.
void AbortHandlerPrototype () noexcept;Add a custom Abort handler function. Implementations support at least 8 AbortHandlers. Implementation false is returned when either the implementation-defined limit for number of abort handlers
bool AddAbortHandler (AbortHandler handler) noexcept;≙ [views.span]
template <typename ElementType, std::size_t Extent> Span< const Byte, Extent==dynamic_extent ? dynamic_extent :sizeof(ElementType) *Extent > as_bytes (Span< ElementType, Extent > s) noexcept;≙ [views.span]
template <typename ElementType, std::size_t Extent> Span< Byte, Extent==dynamic_extent ? dynamic_extent :sizeof(Element Type) *Extent > as_writable_bytes (Span< ElementType, Extent > s) noexcept;Return a pointer to the block of memory that contains the elements of a container.
التحميلات الزائدة data 4
template <typename Container> constexpr auto data (Container &c) noexcept(noexcept(c.data())) -> decltype(c.data()); SWS_CORE_04110template <typename Container> constexpr auto data (const Container &c) noexcept(noexcept(c.data())) -> decltype(c.data()); SWS_CORE_04111template <typename T, std::size_t N> constexpr T * data (T(&array)[N]) noexcept; SWS_CORE_04112template <typename E> constexpr const E * data (std::initializer_list< E > il) noexcept; SWS_CORE_04113Shutdown of the ARA Framework After this call, no interaction with the ARA is allowed with the exception of types intended to be used independently of initialization as defined in [SWS_CORE_15002]. As a prerequisite to calling this API it is expected that the use of ARA interfaces has completed (with the given exceptions). It is strongly recommended to make this call in a place where it is guaranteed that the static initialization has completed and destruction of statically initialized data has not yet started.
Result< void > Deinitialize () noexcept;Return whether the given container is empty
التحميلات الزائدة empty 3
template <typename Container> constexpr auto empty (const Container &c) noexcept(noexcept(c.empty())) -> decltype(c.empty()); SWS_CORE_04130template <typename T, std::size_t N> constexpr bool empty (const T(&array)[N]) noexcept; SWS_CORE_04131template <typename E> constexpr bool empty (std::initializer_list< E > il) noexcept; SWS_CORE_04132Return a reference to the global ara::core::CoreErrorDomain
constexpr const ErrorDomain & GetCoreErrorDomain () noexcept;except for the following deviations: 1. Description references to std::pmr::new_delete_resource() are replaced by ara:: core::NewDeleteResource() 2. Description references to std::pmr::set_default_resource() are replaced by ara:: core::SetDefaultResource() 3. Return type std::pmr::memory_resource is replaced with ara::core:: MemoryResource ≙ std::pmr::new_delete_resource
MemoryResource * GetDefaultResource () noexcept;Obtain the reference to the single global ara::core::FutureErrorDomain instance.
constexpr const ErrorDomain & GetFutureErrorDomain () noexcept;Initialization of the ARA framework. Prior to this call, interaction with the ARA is not allowed with the exception of types intended to be used independently of initialization as defined in [SWS_CORE_15002]. It is strongly recommended to make this call in a place where it is guaranteed that static initialization has completed.
Result< void > Initialize (int &argc, char **argv) noexcept;except for the following deviations: 1. Return type std::pmr::memory_resource is replaced with ara::core:: MemoryResource ≙ std::pmr::memory_resource
MemoryResource * NewDeleteResource () noexcept;except for the following deviations: 1. Return type std::pmr::memory_resource is replaced with ara::core:: MemoryResource 2. It’s allocate() function returns nullptr instead of throwing std::bad_alloc ≙ std::pmr::memory_resource
MemoryResource * NullMemoryResource () noexcept;Add a custom Abort handler function and return the most recently added one. By setting nullptr, the implementation may restore the default handler instead; this will remove all previously installed handlers. Implementation This function can be called from multiple threads simultaneously; these calls are performed in an
AbortHandler SetAbortHandler (AbortHandler handler) noexcept;except for the following deviations: 1. Description references to std::pmr::new_delete_resource() are replaced by ara:: core::NewDeleteResource() 2. Description references to std::pmr::get_default_resource() are replaced by ara:: core::GetDefaultResource() 3. Return type std::pmr::memory_resource is replaced with ara::core:: MemoryResource ≙ std::pmr::new_delete_resource
MemoryResource * SetDefaultResource (MemoryResource *r) noexcept;Return the size of a container
التحميلات الزائدة size 2
template <typename Container> constexpr auto size (const Container &c) noexcept(noexcept(c.size())) -> decltype(c.size()); SWS_CORE_04120template <typename T, std::size_t N> constexpr std::size_t size (const T(&array)[N]) noexcept; SWS_CORE_04121Defines all errors of the ara::core Functional Cluster
enum class CoreErrc : ErrorDomain::CodeType {...};Specifies the errors that can occur upon calling Future::get() or Future::GetResult().
enum class FutureErrc : ara::core::ErrorDomain::CodeType {...};Specifies the status of a ara::core::Future as returned by: • Future<T,E>::wait_for() • Future<void,E>::wait_for() • Future<T,E>::wait_until() • Future<void,E>::wait_until() These definitions are equivalent to the ones from std::future_status. However, no item equivalent to std::future_status::deferred is available here. Implementation The numerical values of the enum literals are implementation-defined ≙ std::future_status
enum class FutureStatus : std::uint8_t {...};The type of a handler for ara::core::SetAbortHandler
using AbortHandler = decltype(&AbortHandlerPrototype);A non-integral binary type. The requirements on this type are stated in "See also:" Implementation {<byte-type>} shall be an implementation-defined type
using Byte = {<byte-type>};≙ [basic.string]
using String = BasicString<>;≙ [variant]
using variant_alternative_t = typename variant_alternative<I, T>::type;≙ [views.span]
constexpr std::size_t dynamic_extent = std::numeric_limits<std::size_ t>::max();The singleton instance of ara::core::in_place_t
constexpr in_place_t in_place;The singleton instances (one for each I of ara::core::in_place_index_t
template <std::size_t Index> constexpr in_place_index_t<Index> in_place_index {};The singleton instances (one for each T) of ara::core::in_place_type_t
template <typename T> constexpr in_place_type_t<T> in_place_type;≙ [variant]
template <typename T> constexpr std::size_t variant_size_v = variant_size<T>::value;ara::core::literals::string_view_literals
≙ [string.view]
constexpr StringView operator""_SV (const char *str, std::size_t len) noexcept;std
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]
نطاقات الأسماء
- ara::core 50 Klassen, 194 freie Funktionen
- ara::core::literals::string_view_literals 0 Klassen, 1 freie Funktionen
- std 8 Klassen, 0 freie Funktionen
مخطط الفئات UML للوحدة
Abgerundete Rahmen = Namespaces; hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); graue Boxen = modulfremde bzw. externe Basisklassen. Klicken öffnet die Klassenseite.
gemini-3.8-flash-low· 2026-10-13 · الأصل الألماني