DEENESPTFRRUARHIKOZHNL

módulo ara::core — Adaptive Platform Core

Spezifikation: AUTOSAR_AP_SWS_Core.pdf (R25-11) · 1237 API-Records

Guía del móduloGENERADO POR IA

Proporciona tipos básicos de C++ para toda la plataforma, tipos de resultado seguros ante fallos y pools de memoria deterministas.
GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 54405fb1f5a0 Procedencia Preguntas abiertas (2)
Ancla causal: R25-11 Válido desde R25-11 Sintetizado para esta versión de especificación.
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Proporciona tipos básicos de C++ para toda la plataforma, tipos de resultado seguros ante fallos y pools de memoria deterministas.

El módulo core proporciona los tipos básicos de toda la plataforma, pools de memoria PMR y primitivas de sincronización asíncronas Future y Promise para la AUTOSAR Adaptive Platform (SWArchitecture p. 60, [SWS_CORE_00326]). Para cumplir los estrictos requisitos de seguridad y tiempo real, el tipo suma Result<T, E> sustituye las excepciones clásicas por valores de retorno deterministas ([SWS_CORE_00751]). En caso de errores irreparables del sistema, la función de fail-fast Abort() garantiza la interrupción inmediata y controlada del proceso ([SWS_CORE_00052]).

El módulo core actúa como cluster funcional básico de la AUTOSAR Adaptive Platform y proporciona estructuras de datos uniformes, primitivas de comunicación asíncrona y mecanismos de gestión de memoria para todos los servicios de plataforma y aplicaciones (SWArchitecture p. 60). Para garantizar ejecuciones deterministas y seguridad funcional en entornos de sistemas operativos POSIX, core sustituye las excepciones convencionales de C++ por el tipo de resultado con seguridad de tipos Result<T, E> y controla las asignaciones de memoria dinámica a través de asignadores polimórficos ([SWS_CORE_00041], [SWS_CORE_00751]).

CoreArch cluster_core ara::core app Adaptive Application fc Funktionale Cluster (ara::com, ara::ts, etc.) app->fc lifecycle Lebenszyklus & Prozessabbruch (Initialize, Deinitialize, Abort) app->lifecycle concurrency Flujos de control asíncronos (Future, Promise, ejecutor) app->concurrency error_mgmt Deterministisches Fehlermanagement (Result, ErrorCode, ErrorDomain) app->error_mgmt memory Speicherverwaltung (PMR) (MemoryResource, PoolResources) app->memory types Container & Utility-Typen (Optional, Array, Vector, Map) app->types fc->concurrency fc->error_mgmt fc->memory fc->types posix Betriebssystem & POSIX-Laufzeitumgebung lifecycle->posix memory->posix

Diagrama de contexto: integración del cluster funcional ara::core y sus áreas de interfaz en la Adaptive Platform. Fuentes: SWArchitecture p. 60, SWArchitecture p. 36

Para la sincronización concurrente, core implementa la interacción de Future y Promise ([SWS_CORE_00326], [SWS_CORE_00344]). Mientras el productor proporciona el estado de cálculo o el error a través del Promise, Future permite al consumidor tanto consultas con control de tiempo mediante wait_for() como reenvíos reactivos mediante then() ([SWS_CORE_00329], [SWS_CORE_00331], TimeSynchronization p. 90).

ResultEval start Empfang von Result<T, E> check Comprobación mediante HasValue() / operator bool() start->check val_path Correcto: acceso mediante Value() / operator*() check->val_path true err_path Caso de error: acceso mediante Error() check->err_path false use_val Nutzlast T verarbeiten val_path->use_val check_throw Exception-Modus aktiviert? err_path->check_throw throw_exc ValueOrThrow() genera una excepción check_throw->throw_exc Sí handle_err Deterministische Fehlerbehandlung via ErrorCode check_throw->handle_err No

Diagrama de actividad: ruta de evaluación determinista de un objeto Result en caso sin errores y en caso de error. Fuentes: [SWS_CORE_00751], [SWS_CORE_00755], [SWS_CORE_00757], [SWS_CORE_00766]

Para evitar la fragmentación, el módulo proporciona recursos de pool como SynchronizedPoolResource y UnsynchronizedPoolResource, que limitan las asignaciones a fragmentos (chunks) de tamaño fijo ([SWS_CORE_00030], [SWS_CORE_00067], SWArchitecture p. 61). Si se produce un estado de error insuperable, la plataforma fuerza a través de Abort(), con ejecución previa de un AbortHandler registrado, la terminación inmediata del proceso por fail-fast ([SWS_CORE_00051], [SWS_CORE_00052]).

Rol en el sistema y base arquitectónica de ara::core

El módulo core constituye los cimientos fundamentales de la AUTOSAR Adaptive Platform y proporciona definiciones de tipos básicas, mecanismos de gestión de memoria e interfaces base para todos los clusters funcionales y Adaptive Applications (SWArchitecture p. 60). A diferencia de los servicios específicos de la aplicación, core está diseñado de forma local al proceso y define las abstracciones esenciales para realizar software en C++ portable, determinista y eficiente en recursos dentro de entornos de sistemas operativos POSIX (SWArchitecture p. 36).

Arquitectónicamente, el módulo actúa como una interfaz estandarizada entre las funciones del sistema operativo cercanas al hardware y las capas superiores de la Adaptive Platform (SWArchitecture p. 60). Al hacer esto, core aborda requisitos centrales de seguridad funcional (ASIL) y capacidad de tiempo real, haciendo controlables las asignaciones de memoria dinámica y prescindiendo del uso generalizado de excepciones de C++ en el flujo de control regular ([SWS_CORE_00052], [SWS_CORE_00751]). La provisión de tipos básicos en toda la plataforma evita soluciones aisladas propietarias entre componentes de middleware como ara::com o ara::ts (ARAComAPI p. 46, TimeSynchronization p. 90).

CoreArch cluster_core ara::core app Adaptive Application fc Funktionale Cluster (ara::com, ara::ts, etc.) app->fc lifecycle Lebenszyklus & Prozessabbruch (Initialize, Deinitialize, Abort) app->lifecycle concurrency Flujos de control asíncronos (Future, Promise, ejecutor) app->concurrency error_mgmt Deterministisches Fehlermanagement (Result, ErrorCode, ErrorDomain) app->error_mgmt memory Speicherverwaltung (PMR) (MemoryResource, PoolResources) app->memory types Container & Utility-Typen (Optional, Array, Vector, Map) app->types fc->concurrency fc->error_mgmt fc->memory fc->types posix Betriebssystem & POSIX-Laufzeitumgebung lifecycle->posix memory->posix

Diagrama de contexto: integración del cluster funcional ara::core y sus áreas de interfaz en la Adaptive Platform. Fuentes: SWArchitecture p. 60, SWArchitecture p. 36

Flujos asíncronos de control y de datos a través de Future y Promise

Para la interacción concurrente y desacoplada, ara::core implementa el patrón productor-consumidor mediante Promise y Future ([SWS_CORE_00326], [SWS_CORE_00341]). Un Promise representa la interfaz de escritura a través de la cual un worker asíncrono o un skeleton de comunicación deposita el resultado o un error ([SWS_CORE_00345], [SWS_CORE_00353]). La contraparte consumidora está formada por Future, que monitoriza el estado compartido (Shared State) y encapsula el acceso con seguridad de tipos al valor de retorno (ARAComAPI p. 46, ARAComAPI p. 59).

Para evitar el bloqueo de subprocesos cliente, Future proporciona, junto a la función de consulta síncrona y bloqueante get() ([SWS_CORE_00326]), operaciones de espera con límite de tiempo: wait_for() y wait_until() devuelven un indicador de estado de tipo FutureStatus ([SWS_CORE_00329], [SWS_CORE_00330], ARAComAPI p. 1). A través del método then() se pueden registrar callbacks que se ejecutan automáticamente al recibir el resultado; de forma opcional, se puede integrar un Executor específico del usuario para dirigir la ejecución a determinados pools de subprocesos ([SWS_CORE_00024], [SWS_CORE_00331], [SWS_CORE_00337]). Las operaciones de copia están explícitamente deshabilitadas para Future y Promise con el fin de garantizar una propiedad exclusiva ([SWS_CORE_00334], [SWS_CORE_00350]).

Comunicación asíncrona mediante Promise y FutureConsumer (App)FuturePromiseProducer (Worker)Erzeuge Promise()get_future()Erzeuge Future<T, E>Transferencia de Future al consumidorUse Case: Fase de espera y consultawait_for(timeoutDuration)FutureStatus::kTimeoutUse Case: Ergebnisbereitstellungset_value(value) o SetError(error)Cambio de estado: estado compartido satisfechoget() o GetResult()Retorno de valor o Result<T, E>

Diagrama de secuencia: Transferencia asíncrona de valores y errores entre el worker y la aplicación a través de Promise y Future. Fuentes: [SWS_CORE_00326], [SWS_CORE_00329], [SWS_CORE_00344], [SWS_CORE_00345], TimeSynchronization p. 90

Gestión determinista de errores: Result, ErrorCode y ErrorDomain

Un aspecto central de la programación orientada a la seguridad en la Adaptive Platform es la estricta prevención de excepciones no controladas en el funcionamiento regular. ara::core::Result<T, E> actúa como una encapsulación de tipo suma con seguridad de tipos que contiene o bien un valor de carga útil de éxito de tipo T o bien un objeto de error de tipo E ([SWS_CORE_00721], [SWS_CORE_00723], [SWS_CORE_00751]). Existen especializaciones tanto para tipos de referencia Result<T&, E> como para operaciones sin valor de retorno Result<void, E> ([SWS_CORE_00821], [SWS_CORE_00908]).

El estado contenido se comprueba mediante HasValue() o el operador de conversión explícito operator bool() ([SWS_CORE_00751], [SWS_CORE_00752]). El acceso a los datos útiles se realiza a través de Value() o operator*(), mientras que los errores se consultan mediante Error() ([SWS_CORE_00755], [SWS_CORE_00757]). Para el procesamiento funcional posterior y la propagación de errores, Result proporciona métodos como Bind(), ValueOr() y Resolve() ([SWS_CORE_00761], [SWS_CORE_00768]). Los errores se modelan mediante ErrorCode, que vincula un código de error numérico CodeType con un identificador de dominio unívoco ErrorDomain, así como datos adicionales de diagnóstico opcionales SupportDataType ([SWS_CORE_00121], [SWS_CORE_00122], [SWS_CORE_00512]). El método ValueOrThrow() existe como puente para entornos con gestión de excepciones habilitada, pero en caso de error desencadena la excepción asociada al dominio ([SWS_CORE_00154], [SWS_CORE_00766]).

ResultEval start Empfang von Result<T, E> check Comprobación mediante HasValue() / operator bool() start->check val_path Correcto: acceso mediante Value() / operator*() check->val_path true err_path Caso de error: acceso mediante Error() check->err_path false use_val Nutzlast T verarbeiten val_path->use_val check_throw Exception-Modus aktiviert? err_path->check_throw throw_exc ValueOrThrow() genera una excepción check_throw->throw_exc Sí handle_err Deterministische Fehlerbehandlung via ErrorCode check_throw->handle_err No

Diagrama de actividad: ruta de evaluación determinista de un objeto Result en caso sin errores y en caso de error. Fuentes: [SWS_CORE_00751], [SWS_CORE_00755], [SWS_CORE_00757], [SWS_CORE_00766]

Gestión de memoria polimórfica mediante recursos de pool

La asignación dinámica en el heap estándar entraña riesgos respecto al no determinismo y la fragmentación de la memoria. Por ello, ara::core integra una gestión de memoria basada en recursos de memoria polimórficos (PMR), inspirada en el patrón NVI (Non-Virtual Interface) de C++ (SWArchitecture p. 61). La clase base MemoryResource declara las interfaces públicas allocate() y deallocate(), que internamente invocan los métodos puramente virtuales do_allocate() y do_deallocate() ([SWS_CORE_00041], [SWS_CORE_00061]).

Para patrones de asignación críticos en tiempo real se dispone de recursos de pool especializados: SynchronizedPoolResource ofrece asignaciones seguras para subprocesos a partir de chunks y tamaños de bloque preconfigurados mediante PoolOptions ([SWS_CORE_00027], [SWS_CORE_00030]). Para fases de procesamiento estrictamente locales al subproceso sin sobrecarga de sincronización sirve UnsynchronizedPoolResource ([SWS_CORE_00046], [SWS_CORE_00067]). Mediante release(), todo el rango de memoria asignado se puede devolver en un único paso al upstream_resource() previo, lo que previene eficazmente las fugas de memoria en flujos de trabajo orientados a fases ([SWS_CORE_00037], [SWS_CORE_00038], [SWS_CORE_00065]).

PMRHierarchy mr MemoryResource (Basisklasse / NVI) + allocate() + deallocate() - do_allocate() - do_deallocate() sync_pool SynchronizedPoolResource - do_allocate() [thread-safe] - do_deallocate() [thread-safe] + release() + options() sync_pool->mr erbt von unsync_pool UnsynchronizedPoolResource - do_allocate() [thread-local] - do_deallocate() [thread-local] + release() + options() unsync_pool->mr erbt von

Diagrama de clases: Jerarquía de los recursos de memoria polimórficos según el patrón Non-Virtual Interface (NVI). Fuentes: SWArchitecture p. 61, [SWS_CORE_00030], [SWS_CORE_00041], [SWS_CORE_00061]

Tipos fundamentales de utilidad y contenedores (Optional, Array, Vector, Map)

Para evitar comportamientos indefinidos y garantizar una semántica clara, core estandariza contenedores y tipos auxiliares elementales. ara::core::Optional<T> representa valores que pueden estar presentes o no, sin necesidad de recurrir a punteros nulos inseguros ([SWS_CORE_01103], [SWS_CORE_01104], ARAComAPI p. 1). El estado se consulta mediante has_value() o operator bool(), mientras que los accesos se realizan mediante value(), value_or() o operator*() ([SWS_CORE_01128], [SWS_CORE_01129], [SWS_CORE_01130], [SWS_CORE_01134]). Sobrecargas de referencia especiales Optional<T&> permiten mantener referencias opcionales de forma segura ([SWS_CORE_01151], [SWS_CORE_01167]).

Para estructuras de datos de tamaño fijo, el módulo proporciona Array<T, N>, que admite indexación directa mediante operator[], acceso con comprobación de límites mediante at() e iteradores estándar ([SWS_CORE_01250], [SWS_CORE_01265], [SWS_CORE_01273]). Los operadores de comparación están implementados de acuerdo con estrictas directrices de codificación con retornos de tipo bool y seguridad frente a excepciones ([SWS_CORE_01290], CPP14Guidelines p. 241). Las secuencias de crecimiento dinámico y los contenedores asociativos quedan cubiertos por Vector<T, Allocator> y Map<Key, T, Compare, Allocator> ([SWS_CORE_01318], [SWS_CORE_01428]). Ambos tipos aceptan asignadores configurables, de modo que las asignaciones pueden gestionarse sin fisuras mediante los pools polimórficos de MemoryResource ([SWS_CORE_00066], [SWS_CORE_01303], [SWS_CORE_01406]).

Comportamiento en caso de error y terminación Fail-Fast

Si un proceso no puede compensar de forma segura un estado de error grave, interviene el principio fail-fast de la Adaptive Platform (SWArchitecture p. 60). A través de la interfaz Abort() se induce la terminación inmediata e incondicional del proceso en ejecución ([SWS_CORE_00052]). La función está declarada como [[noreturn]] y noexcept para garantizar que ninguna rutina de desenrollado de pila ni destructor genere estados subsiguientes incorrectos ([SWS_CORE_00052], SWArchitecture p. 36).

Para asegurar información de diagnóstico volátil o ejecutar últimas acciones de registro de emergencia antes de la finalización, las aplicaciones pueden registrar funciones de retrollamada específicas del usuario a través de SetAbortHandler() o AddAbortHandler() ([SWS_CORE_00050], [SWS_CORE_00051], [SWS_CORE_00054]). Un manejador de aborto registrado debe cumplir la signatura void() noexcept ([SWS_CORE_00053]). Tras la ejecución del manejador, la plataforma fuerza la terminación definitiva del proceso, de modo que no es posible continuar la ejecución en un estado de memoria indefinido (SWArchitecture p. 60).

AbortFlow error_detect Estado de error grave y no recuperable call_abort Aufruf von ara::core::Abort(args...) error_detect->call_abort check_handler AbortHandler registriert? call_abort->check_handler exec_handler Ejecución del AbortHandler registrado (asegurar diagnóstico, escribir registro de emergencia) check_handler->exec_handler Sí sys_terminate Cancelación inmediata del proceso sin desenrollado de pila (terminación [[noreturn]]) check_handler->sys_terminate No exec_handler->sys_terminate

Diagrama de actividades: Flujo de control de la interrupción fail-fast mediante Abort() con ejecución del AbortHandler. Fuentes: SWArchitecture p. 60, [SWS_CORE_00051], [SWS_CORE_00052]

Más evidencia detallada

La especificación de core en la versión R25-11 se basa en una serie de disposiciones normativas y modelos arquitectónicos. Para el ciclo de vida del proceso y el comportamiento de parada de emergencia son constitutivos Initialize(), Deinitialize(), así como Abort() y SetAbortHandler() ([SWS_CORE_00051], [SWS_CORE_00052], SWArchitecture p. 60). El modelo de comunicación asíncrona se apoya de forma determinante en Future ([SWS_CORE_00326], [SWS_CORE_00329]) y Promise ([SWS_CORE_00344], [SWS_CORE_00345]), cuya interacción se verifica en clusters cercanos a la aplicación como ara::com y ara::ts (ARAComAPI p. 46, TimeSynchronization p. 90).

La gestión de memoria y datos sin fallos queda normalizada por las especificaciones relativas a Result ([SWS_CORE_00751], [SWS_CORE_00766]), ErrorCode ([SWS_CORE_00512]) y las clases de memoria PMR SynchronizedPoolResource y UnsynchronizedPoolResource ([SWS_CORE_00030], [SWS_CORE_00046], SWArchitecture p. 61). De manera complementaria, las directrices de contenedores y comparación definen la retención determinista de datos en sistemas globales críticos para la seguridad ([SWS_CORE_01103], [SWS_CORE_01250], [SWS_CORE_01318], CPP14Guidelines p. 241).

Esta guía ha sido generada por un asistente de curación mediante IA sobre la base de la especificación de AUTOSAR para R25-11.

function: 1060 type alias: 101 class: 34 struct: 26 variable: 13 enumeration: 3

ara::core

Array clase

Implementation of std::array type from [array.syn] The implicitly-declared special member functions specified in [array.cons] are not expli ≙ std::array

Acceso get 4
template <std::size_t I, typename T, std::size_t N> constexpr T & get (Array< T, N > &a) noexcept; SWS_CORE_01282
template <std::size_t I, typename T, std::size_t N> constexpr T && get (Array< T, N > &&a) noexcept; SWS_CORE_01283
template <std::size_t I, typename T, std::size_t N> constexpr T const & get (const Array< T, N > &a) noexcept; SWS_CORE_01284
template <size_t I, class T, size_t N> constexpr const T && get (const Array< T, N > &&) noexcept; SWS_CORE_01286
Comparación != < <= == > >= 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_01291
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_01292
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_01294
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_01290
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_01293
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_01295
Intercambio 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_01296

Implementation of std::pmr::basic_string type from [basic.string] ≙ std::pmr::basic_string

Comparación != < <= == > >= 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_03367
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator!= (const charT *lhs, const BasicString< Allocator > &rhs); SWS_CORE_03368
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator!= (const BasicString< Allocator > &lhs, const charT *rhs); SWS_CORE_03369
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_03370
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator< (const BasicString< Allocator > &lhs, const charT *rhs); SWS_CORE_03371
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator< (const charT *lhs, const BasicString< Allocator > &rhs); SWS_CORE_03372
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_03376
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator<= (const BasicString< Allocator > &lhs, const charT *rhs); SWS_CORE_03377
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator<= (const charT *lhs, const BasicString< Allocator > &rhs); SWS_CORE_03378
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_03364
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator== (const charT *lhs, const BasicString< Allocator > &rhs); SWS_CORE_03365
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator== (const BasicString< Allocator > &lhs, const charT *rhs); SWS_CORE_03366
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_03373
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator> (const BasicString< Allocator > &lhs, const charT *rhs); SWS_CORE_03374
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator> (const charT *lhs, const BasicString< Allocator > &rhs); SWS_CORE_03375
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_03379
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator>= (const BasicString< Allocator > &lhs, const charT *rhs); SWS_CORE_03380
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> bool operator>= (const charT *lhs, const BasicString< Allocator > &rhs); SWS_CORE_03381
Concatenación + 12
template <typename Allocator> BasicString< Allocator > operator+ (const BasicString< Allocator > &lhs, const BasicString< Allocator > &rhs); SWS_CORE_03352
template <typename Allocator> BasicString< Allocator > operator+ (BasicString< Allocator > &&lhs, const BasicString< Allocator > &rhs); SWS_CORE_03353
template <typename Allocator> BasicString< Allocator > operator+ (const BasicString< Allocator > &lhs, BasicString< Allocator > &&rhs); SWS_CORE_03354
template <typename Allocator> BasicString< Allocator > operator+ (BasicString< Allocator > &&lhs, BasicString< Allocator > &&rhs); SWS_CORE_03355
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> BasicString< Allocator > operator+ (const charT *lhs, const Basic String< Allocator > &rhs); SWS_CORE_03356
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> BasicString< Allocator > operator+ (const charT *lhs, BasicString< Allocator > &&rhs); SWS_CORE_03357
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> BasicString< Allocator > operator+ (charT lhs, const BasicString< Allocator > &rhs); SWS_CORE_03358
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> BasicString< Allocator > operator+ (charT lhs, BasicString< Allocator > &&rhs); SWS_CORE_03359
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> BasicString< Allocator > operator+ (const BasicString< Allocator > &lhs, const charT *rhs); SWS_CORE_03360
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> BasicString< Allocator > operator+ (BasicString< Allocator > &&lhs, const charT *rhs); SWS_CORE_03361
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> BasicString< Allocator > operator+ (const BasicString< Allocator > &lhs, charT rhs); SWS_CORE_03362
template <typename Allocator, typename charT = typename std::allocator_traits<Allocator>::value_type> BasicString< Allocator > operator+ (BasicString< Allocator > &&lhs, charT rhs); SWS_CORE_03363
Entrada/salida 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_03401
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_03402
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); SWS_CORE_03403
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); SWS_CORE_03404
template <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_03400
template <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
Conversión to_string 9
String to_string (int val); SWS_CORE_03382
String to_string (unsigned val); SWS_CORE_03383
String to_string (long val); SWS_CORE_03384
String to_string (unsigned long val); SWS_CORE_03385
String to_string (long long val); SWS_CORE_03386
String to_string (unsigned long long val); SWS_CORE_03387
String to_string (float val); SWS_CORE_03388
String to_string (double val); SWS_CORE_03389
String to_string (long double val); SWS_CORE_03390
Intercambio swap 1
template <typename Allocator> void swap (BasicString< Allocator > &lhs, BasicString< Allocator > &rhs); SWS_CORE_03296
Otros stod stof stoi stol stold stoll stoul stoull 8
double stod (const ara::core::String &str, size_t *idx=nullptr); SWS_CORE_03397
float stof (const ara::core::String &str, size_t *idx=nullptr); SWS_CORE_03396
int stoi (const ara::core::String &str, size_t *idx=nullptr, int base=10); SWS_CORE_03391
long stol (const ara::core::String &str, size_t *idx=nullptr, int base=10); SWS_CORE_03392
long double stold (const ara::core::String &str, size_t *idx=nullptr); SWS_CORE_03398
long long stoll (const ara::core::String &str, size_t *idx=nullptr, int base=10); SWS_CORE_03394
unsigned long stoul (const ara::core::String &str, size_t *idx=nullptr, int base=10); SWS_CORE_03393
unsigned long long stoull (const ara::core::String &str, size_t *idx=nullptr, int base=10); SWS_CORE_03395
Bitset clase

Implementation of std::bitset type from [bitset] ≙ std::bitset

Entrada/salida << >> 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_01756
template <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
Otros & | ˆ 3
template <std::size_t N> Bitset< N > operator& (const Bitset< N > &, const Bitset< N > &) noexcept; SWS_CORE_01752
template <std::size_t N> Bitset< N > operator| (const Bitset< N > &, const Bitset< N > &) noexcept; SWS_CORE_01753
template <std::size_t N> Bitset< N > operatorˆ (const Bitset< N > &, const Bitset< N > &) noexcept; SWS_CORE_01754

An error domain for errors originating from the ara::core Functional Cluster.

hereda de ErrorDomain

Exception type thrown for ara::core errors.

hereda de Exception

ErrorCode clase

Encapsulation of an error code

Creación MakeErrorCode 2
constexpr ErrorCode MakeErrorCode (FutureErrc code, Error Domain::SupportDataType data) noexcept; SWS_CORE_00490
constexpr ErrorCode MakeErrorCode (CoreErrc code, ErrorDomain::Support DataType data) noexcept; SWS_CORE_05290
Comparación != == 2
constexpr bool operator!= (const ErrorCode &lhs, const ErrorCode &rhs) noexcept; SWS_CORE_00572
constexpr bool operator== (const ErrorCode &lhs, const ErrorCode &rhs) noexcept; SWS_CORE_00571

Encapsulation of an ErrorDomain

base de CoreErrorDomain, FutureErrorDomain

Exception clase

Base type for all ARA exception types

hereda de std::exception

base de CoreException, FutureException

Executor clase

Provides an interface for a executing context, which asynchronously invokes Callable ([4] [func.wrap.func]) objects in a guaranteed thread-s

Future clase

Implementation of std::future from [future.syn] in [11] ≙ std::future

Especializaciones Future< void, E >

Error domain for errors originating from ara::core::Future and ara::core::Promise

hereda de ErrorDomain

Exception type thrown by ara::core::Future and ara::core::Promise

hereda de Exception

hash clase

≙ [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.

Comparación != == 2
bool operator!= (ara::core::StringView lhs, const InstanceSpecifier &rhs) noexcept; SWS_CORE_08082
bool operator== (ara::core::StringView lhs, const InstanceSpecifier &rhs) noexcept; SWS_CORE_08081

As per std::is_nothrow_swappable, see [meta.unary.prop] in [11] ≙ std::is_nothrow_swappable

Map clase

Implementation of std::pmr::map container from [map] ≙ std::pmr::map

Intercambio 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_01496

Implementation of std::pmr::memory_resource type from [mem.res.class] ≙ std::pmr::memory_resource

base de MonotonicBufferResource, SynchronizedPoolResource, UnsynchronizedPoolResource

Comparación == 1
bool operator== (const MemoryResource &a, const MemoryResource &b) noexcept; SWS_CORE_06561
Monostate clase

≙ [variant]

Acceso 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_01613
template <std::size_t I, typename... Types> constexpr variant_alternative_t< I, Variant< Types... > > && get ( Variant< Types... > &&variant) noexcept; SWS_CORE_01614
template <std::size_t I, typename... Types> constexpr const variant_alternative_t< I, Variant< Types... > > & get (const Variant< Types... > &variant) noexcept; SWS_CORE_01615
template <std::size_t I, typename... Types> constexpr const variant_alternative_t< I, Variant< Types... > > && get (const Variant< Types... > &&variant) noexcept; SWS_CORE_01616
template <typename T, typename... Types> constexpr T & get (Variant< Types... > &variant) noexcept; SWS_CORE_01617
template <typename T, typename... Types> constexpr T && get (Variant< Types... > &&variant) noexcept; SWS_CORE_01618
template <typename T, typename... Types> constexpr const T & get (const Variant< Types... > &variant) noexcept; SWS_CORE_01619
template <typename T, typename... Types> constexpr const T && get (const Variant< Types... > &&variant) noexcept; SWS_CORE_01620
template <std::size_t I, typename... Types> std::add_pointer_t< variant_alternative_t< I, Variant< Types... > > > get_if (Variant< Types... > *variant) noexcept; SWS_CORE_01621
template <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_01622
template <typename T, typename... Types> std::add_pointer_t< T > get_if (Variant< Types... > *variant) noexcept; SWS_CORE_01623
template <typename T, typename... Types> std::add_pointer_t< const T > get_if (const Variant< Types... > *variant) noexcept; SWS_CORE_01624
template <typename T, typename... Types> constexpr bool holds_alternative (const Variant< Types... > &variant) noexcept; SWS_CORE_01626
template <typename ReturnType, typename Visitor, typename... Variants> constexpr {<invoke-result-decltype-1>} visit (Visitor &&visitor, Variants &&... variants); SWS_CORE_01633
template <typename Visitor, typename... Variants> constexpr {<invoke-result-decltype-2>} visit (Visitor &&visitor, Variants &&... variants); SWS_CORE_01634
Comparación != < <= == > >= 12
template <typename... Types> constexpr bool operator!= (const Variant< Types... > &lhs, const Variant< Types... > &rhs); SWS_CORE_01628
constexpr bool operator!= (Monostate lhs, Monostate rhs) noexcept; SWS_CORE_01642
template <typename... Types> constexpr bool operator< (const Variant< Types... > &lhs, const Variant< Types... > &rhs); SWS_CORE_01629
constexpr bool operator< (Monostate lhs, Monostate rhs) noexcept; SWS_CORE_01643
template <typename... Types> constexpr bool operator<= (const Variant< Types... > &lhs, const Variant< Types... > &rhs); SWS_CORE_01631
constexpr bool operator<= (Monostate lhs, Monostate rhs) noexcept; SWS_CORE_01645
template <typename... Types> constexpr bool operator== (const Variant< Types... > &lhs, const Variant< Types... > &rhs); SWS_CORE_01627
constexpr bool operator== (Monostate lhs, Monostate rhs) noexcept; SWS_CORE_01641
template <typename... Types> constexpr bool operator> (const Variant< Types... > &lhs, const Variant< Types... > &rhs); SWS_CORE_01630
constexpr bool operator> (Monostate lhs, Monostate rhs) noexcept; SWS_CORE_01644
template <typename... Types> constexpr bool operator>= (const Variant< Types... > &lhs, const Variant< Types... > &rhs); SWS_CORE_01632
constexpr bool operator>= (Monostate lhs, Monostate rhs) noexcept; SWS_CORE_01646
Intercambio swap 1
template <typename... Types> void swap (Variant< Types... > &lhs, Variant< Types... > &rhs) noexcept(noexcept(lhs.swap(rhs))); SWS_CORE_01696

Implementation of std::pmr::monotonic_buffer_resource type from [mem.res.monotonic.buffer] ≙ std::pmr::monotonic_buffer_resource

hereda de MemoryResource

nullopt_t clase

Shall implement std::nullopt_t ≙ std::nullopt_t

Optional clase

Implementation of std::optional type from [optional.syn] ≙ std::optional

Especializaciones Optional< T & >

Creación 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_01138
template <typename T, typename... Args> constexpr Optional< T > make_optional (Args &&... args) noexcept(std::is_nothrow_constructible< T, Args... >::value); SWS_CORE_01139
template <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
Comparación != < <= == > >= 30
template <typename T, typename U> constexpr bool operator!= (const Optional< T > &, const Optional< U > &); SWS_CORE_01143
template <typename T, typename U> constexpr bool operator!= (const Optional< T > &, const U &); SWS_CORE_01176
template <typename T, typename U> constexpr bool operator!= (const U &, const Optional< T > &); SWS_CORE_01177
template <typename T> constexpr bool operator!= (const Optional< T > &, nullopt_t) noexcept; SWS_CORE_01188
template <typename T> constexpr bool operator!= (nullopt_t, const Optional< T > &) noexcept; SWS_CORE_01189
template <typename T, typename U> constexpr bool operator< (const Optional< T > &, const Optional< U > &); SWS_CORE_01144
template <typename T, typename U> constexpr bool operator< (const Optional< T > &, const U &); SWS_CORE_01178
template <typename T, typename U> constexpr bool operator< (const U &, const Optional< T > &); SWS_CORE_01179
template <typename T> constexpr bool operator< (const Optional< T > &, nullopt_t) noexcept; SWS_CORE_01190
template <typename T> constexpr bool operator< (nullopt_t, const Optional< T > &) noexcept; SWS_CORE_01191
template <typename T, typename U> constexpr bool operator<= (const Optional< T > &, const Optional< U > &); SWS_CORE_01146
template <typename T, typename U> constexpr bool operator<= (const Optional< T > &, const U &); SWS_CORE_01180
template <typename T, typename U> constexpr bool operator<= (const U &, const Optional< T > &); SWS_CORE_01181
template <typename T> constexpr bool operator<= (const Optional< T > &, nullopt_t) noexcept; SWS_CORE_01192
template <typename T> constexpr bool operator<= (nullopt_t, const Optional< T > &) noexcept; SWS_CORE_01193
template <typename T, typename U> constexpr bool operator== (const Optional< T > &, const Optional< U > &); SWS_CORE_01142
template <typename T, typename U> constexpr bool operator== (const Optional< T > &, const U &); SWS_CORE_01148
template <typename T, typename U> constexpr bool operator== (const U &, const Optional< T > &); SWS_CORE_01149
template <typename T> constexpr bool operator== (const Optional< T > &, nullopt_t) noexcept; SWS_CORE_01186
template <typename T> constexpr bool operator== (nullopt_t, const Optional< T > &) noexcept; SWS_CORE_01187
template <typename T, typename U> constexpr bool operator> (const Optional< T > &, const Optional< U > &); SWS_CORE_01145
template <typename T, typename U> constexpr bool operator> (const Optional< T > &, const U &); SWS_CORE_01182
template <typename T, typename U> constexpr bool operator> (const U &, const Optional< T > &); SWS_CORE_01183
template <typename T> constexpr bool operator> (const Optional< T > &, nullopt_t) noexcept; SWS_CORE_01194
template <typename T> constexpr bool operator> (nullopt_t, const Optional< T > &) noexcept; SWS_CORE_01195
template <typename T, typename U> constexpr bool operator>= (const Optional< T > &, const Optional< U > &); SWS_CORE_01147
template <typename T, typename U> constexpr bool operator>= (const Optional< T > &, const U &); SWS_CORE_01184
template <typename T, typename U> constexpr bool operator>= (const U &, const Optional< T > &); SWS_CORE_01185
template <typename T> constexpr bool operator>= (const Optional< T > &, nullopt_t) noexcept; SWS_CORE_01196
template <typename T> constexpr bool operator>= (nullopt_t, const Optional< T > &) noexcept; SWS_CORE_01197
Intercambio 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_01096

Implementation of std::pmr::polymorphic_allocator from [mem.poly.allocator.class] ≙ std::pmr::polymorphic_allocator

Comparación == 1
template <class T1, class T2> bool operator== (const PolymorphicAllocator< T1 > &a, const PolymorphicAllocator< T2 > &b) noexcept; SWS_CORE_06560

Implementation of std::pmr::pool_options from [mem.poly.pool_options.class] ≙ std::pmr::pool_options

Promise clase

ara::core specific variant of std::promise class The implementation shall flag the condition E!=ara::core::ErrorCode as a compile error. ≙ std::promise

Especializaciones Promise< void, E >

Result clase

This class is a type that contains either a value or an error

Especializaciones Result< T &, E > Result< void, E >

Comparación != == 10
template <typename T, typename E> bool operator!= (const Result< T, E > &lhs, const Result< T, E > &rhs); SWS_CORE_00781
template <typename T, typename E> bool operator!= (const Result< T, E > &lhs, const T &rhs); SWS_CORE_00784
template <typename T, typename E> bool operator!= (const T &lhs, const Result< T, E > &rhs); SWS_CORE_00785
template <typename T, typename E> bool operator!= (const Result< T, E > &lhs, const E &rhs); SWS_CORE_00788
template <typename T, typename E> bool operator!= (const E &lhs, const Result< T, E > &rhs); SWS_CORE_00789
template <typename T, typename E> bool operator== (const Result< T, E > &lhs, const Result< T, E > &rhs); SWS_CORE_00780
template <typename T, typename E> bool operator== (const Result< T, E > &lhs, const T &rhs); SWS_CORE_00782
template <typename T, typename E> bool operator== (const T &lhs, const Result< T, E > &rhs); SWS_CORE_00783
template <typename T, typename E> bool operator== (const Result< T, E > &lhs, const E &rhs); SWS_CORE_00786
template <typename T, typename E> bool operator== (const E &lhs, const Result< T, E > &rhs); SWS_CORE_00787
Intercambio swap 1
template <typename T, typename E> void swap (Result< T, E > &lhs, Result< T, E > &rhs) noexcept(noexcept(lhs.Swap(rhs))); SWS_CORE_00796
Span clase

Implementation of std::span container from [views.span] ≙ std::span

Creación MakeSpan 5
template <typename T> constexpr Span< T > MakeSpan (T *ptr, typename Span< T >::size_type count) noexcept; SWS_CORE_01990
template <typename T> constexpr Span< T > MakeSpan (T *firstElem, T *lastElem) noexcept; SWS_CORE_01991
template <typename T, std::size_t N> constexpr Span< T, N > MakeSpan (T(&arr)[N]) noexcept; SWS_CORE_01992
template <typename Container> constexpr Span< typename Container::value_type > MakeSpan (Container &cont) noexcept; SWS_CORE_01993
template <typename Container> constexpr Span< typename Container::value_type const > MakeSpan (const Container &cont) noexcept; SWS_CORE_01994

This clock represents a monotonic clock

Implementation of std::basic_string_view type from [string.view] ≙ std::basic_string_view

Comparación != < <= == > >= 6
constexpr bool operator!= (StringView lhs, StringView rhs) noexcept; SWS_CORE_02182
constexpr bool operator< (StringView lhs, StringView rhs) noexcept; SWS_CORE_02183
constexpr bool operator<= (StringView lhs, StringView rhs) noexcept; SWS_CORE_02185
constexpr bool operator== (StringView lhs, StringView rhs) noexcept; SWS_CORE_02181
constexpr bool operator> (StringView lhs, StringView rhs) noexcept; SWS_CORE_02184
constexpr bool operator>= (StringView lhs, StringView rhs) noexcept; SWS_CORE_02186
Entrada/salida << 1

Implementation of std::pmr::synchronized_pool_resource from [mem.res.pool] ≙ std::pmr::synchronized_pool_resource

hereda de MemoryResource

Implementation of std::pmr::unsynchronized_pool_resource from [mem.res.pool] ≙ std::pmr::unsynchronized_pool_resource

hereda de MemoryResource

Variant clase

Implementation of std::variant type from [basic.string] ≙ std::variant

Vector clase

Implementation of std::pmr::vector container from [vector] ≙ std::pmr::vector

Comparación != < <= == > >= 6
template <typename T, typename Allocator> bool operator!= (const Vector< T, Allocator > &lhs, const Vector< T, Allocator > &rhs); SWS_CORE_01391
template <typename T, typename Allocator> bool operator< (const Vector< T, Allocator > &lhs, const Vector< T, Allocator > &rhs); SWS_CORE_01392
template <typename T, typename Allocator> bool operator<= (const Vector< T, Allocator > &lhs, const Vector< T, Allocator > &rhs); SWS_CORE_01393
template <typename T, typename Allocator> bool operator== (const Vector< T, Allocator > &lhs, const Vector< T, Allocator > &rhs); SWS_CORE_01390
template <typename T, typename Allocator> bool operator> (const Vector< T, Allocator > &lhs, const Vector< T, Allocator > &rhs); SWS_CORE_01394
template <typename T, typename Allocator> bool operator>= (const Vector< T, Allocator > &lhs, const Vector< T, Allocator > &rhs); SWS_CORE_01395
Intercambio swap 1
template <typename T, typename Allocator> void swap (Vector< T, Allocator > &lhs, Vector< T, Allocator > &rhs) noexcept(noexcept(lhs.swap(rhs))); SWS_CORE_01396
Abort función

Abort 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;
as_bytes función

≙ [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;
data función 4

Return a pointer to the block of memory that contains the elements of a container.

Sobrecargas data 4
template <typename Container> constexpr auto data (Container &c) noexcept(noexcept(c.data())) -> decltype(c.data()); SWS_CORE_04110
template <typename Container> constexpr auto data (const Container &c) noexcept(noexcept(c.data())) -> decltype(c.data()); SWS_CORE_04111
template <typename T, std::size_t N> constexpr T * data (T(&array)[N]) noexcept; SWS_CORE_04112
template <typename E> constexpr const E * data (std::initializer_list< E > il) noexcept; SWS_CORE_04113
Deinitialize función

Shutdown 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;
empty función 3

Return whether the given container is empty

Sobrecargas empty 3
template <typename Container> constexpr auto empty (const Container &c) noexcept(noexcept(c.empty())) -> decltype(c.empty()); SWS_CORE_04130
template <typename T, std::size_t N> constexpr bool empty (const T(&array)[N]) noexcept; SWS_CORE_04131
template <typename E> constexpr bool empty (std::initializer_list< E > il) noexcept; SWS_CORE_04132

Return 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;
Initialize función

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;
size función 2

Return the size of a container

Sobrecargas size 2
template <typename Container> constexpr auto size (const Container &c) noexcept(noexcept(c.size())) -> decltype(c.size()); SWS_CORE_04120
template <typename T, std::size_t N> constexpr std::size_t size (const T(&array)[N]) noexcept; SWS_CORE_04121
CoreErrc enumeración

Defines all errors of the ara::core Functional Cluster

enum class CoreErrc : ErrorDomain::CodeType {...};
FutureErrc enumeración

Specifies the errors that can occur upon calling Future::get() or Future::GetResult().

enum class FutureErrc : ara::core::ErrorDomain::CodeType {...};
FutureStatus enumeración

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 {...};
AbortHandler alias de tipo

The type of a handler for ara::core::SetAbortHandler

using AbortHandler = decltype(&AbortHandlerPrototype);
Byte alias de tipo

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>};
String alias de tipo

≙ [basic.string]

using String = BasicString<>;
variant_alternative_t alias de tipo

≙ [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();
in_place variable

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 {};
in_place_type variable

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;
nullopt variable

≙ [optional]

constexpr nullopt_t nullopt {};

≙ [variant]

template <typename T> constexpr std::size_t variant_size_v = variant_size<T>::value;

ara::core::literals::string_view_literals

string_view_ función

≙ [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

Especializaciones 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]

Namespaces

Diagrama de clases UML del módulo

Abgerundete Rahmen = Namespaces; hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); graue Boxen = modulfremde bzw. externe Basisklassen. Klicken öffnet die Klassenseite.

G cluster_1 ara::core cluster_2 ara::core::Bitset cluster_3 ara::core::Map cluster_4 std nara__core__CoreErrorDomain113 CoreErrorDomain nara__core__ErrorDomain335 ErrorDomain nara__core__CoreErrorDomain113->nara__core__ErrorDomain335 nara__core__CoreException713 CoreException nara__core__Exception792 Exception nara__core__CoreException713->nara__core__Exception792 nextstd__exception28 std::exception nara__core__Exception792->nextstd__exception28 nara__core__FutureErrorDomain146 FutureErrorDomain nara__core__FutureErrorDomain146->nara__core__ErrorDomain335 nara__core__FutureException511 FutureException nara__core__FutureException511->nara__core__Exception792 nara__core__MemoryResource130 MemoryResource nara__core__MonotonicBufferResource118 MonotonicBufferResource nara__core__MonotonicBufferResource118->nara__core__MemoryResource130 nara__core__SynchronizedPoolResource481 SynchronizedPoolResource nara__core__SynchronizedPoolResource481->nara__core__MemoryResource130 nara__core__UnsynchronizedPoolResource176 UnsynchronizedPoolResource nara__core__UnsynchronizedPoolResource176->nara__core__MemoryResource130 nara__core__Array326 Array nara__core__BasicString716 BasicString nara__core__Bitset255 Bitset nara__core__ErrorCode330 ErrorCode nara__core__Executor877 Executor nara__core__Future930 Future nara__core__Future__void__E__740 Future< void, E > nara__core__hash88 «struct» hash nara__core__in_place_index_t938 «struct» in_place_index_t nara__core__in_place_t356 «struct» in_place_t nara__core__in_place_type_t306 «struct» in_place_type_t nara__core__InstanceSpecifier92 InstanceSpecifier nara__core__is_nothrow_swappable987 «struct» is_nothrow_swappable nara__core__Map274 Map nara__core__Monostate901 «struct» Monostate nara__core__nullopt_t64 «struct» nullopt_t nara__core__Optional627 Optional nara__core__Optional__T____62 Optional< T & > nara__core__PolymorphicAllocator970 PolymorphicAllocator nara__core__PoolOptions463 «struct» PoolOptions nara__core__Promise131 Promise nara__core__Promise__void__E__714 Promise< void, E > nara__core__Result167 Result nara__core__Result__T____E__551 Result< T &, E > nara__core__Result__void__E__788 Result< void, E > nara__core__Span436 Span nara__core__SteadyClock455 SteadyClock nara__core__StringView801 StringView nara__core__Variant465 Variant nara__core__variant_alternative370 «struct» variant_alternative nara__core__variant_alternative__I_433 «struct» variant_alternative< I, … > nara__core__variant_alternative__I__Variant__Types_______15 «struct» variant_alternative< I, Variant< Types... > > nara__core__variant_size885 «struct» variant_size nara__core__variant_size__const24 «struct» variant_size< const volatile T > nara__core__variant_size__const_T__418 «struct» variant_size< const T > nara__core__variant_size__Variant_60 «struct» variant_size< Variant< Types... > > nara__core__variant_size__volatile_T__105 «struct» variant_size< volatile T > nara__core__Vector473 Vector nara__core__Bitset__reference533 reference nara__core__Map__value_compare839 value_compare nstd__hash__ara__core__Monostate__722 «struct» hash< ara::core::Monostate > next_core__Monostate__802 :core::Monostate > nstd__hash__ara__core__Monostate__722->next_core__Monostate__802 nstd__hash__ara__core__Optional__T__781 «struct» hash< ara::core::Optional< T > next_core__Optional__T____961 :core::Optional< T > > nstd__hash__ara__core__Optional__T__781->next_core__Optional__T____961 nstd__hash__ara__core__String__667 «struct» hash< ara::core::String > next_core__String___final444 :core::String > final nstd__hash__ara__core__String__667->next_core__String___final444 nstd__hash__ara__core__StringView__122 «struct» hash< ara::core::StringView > next_core__StringView___final857 :core::StringView > final nstd__hash__ara__core__StringView__122->next_core__StringView___final857 nstd__hash__ara__core__Variant_545 «struct» hash< ara::core::Variant< next_core__Variant__Types__________________978 :core::Variant< Types...            > > nstd__hash__ara__core__Variant_545->next_core__Variant__Types__________________978 nstd__hash__ara__core__Vector__T__Allocator____942 «struct» hash< ara::core::Vector< T, Allocator > > next_core__Vector__T__Allocator_____final470 :core::Vector< T, Allocator > > final nstd__hash__ara__core__Vector__T__Allocator____942->next_core__Vector__T__Allocator_____final470 nstd__tuple_element__I__ara__core__Array__T__N____988 «struct» tuple_element< I, ara::core::Array< T, N > > next_core__Array__T__N____306 :core::Array< T, N > > nstd__tuple_element__I__ara__core__Array__T__N____988->next_core__Array__T__N____306 nstd__tuple_size__ara__core__Array__T_805 «struct» tuple_size< ara::core::Array< T, next_core__Array__T__N________________________integral__constant__size_548 :core::Array< T, N > > :                  integral_ constant< size_t, N > nstd__tuple_size__ara__core__Array__T_805->next_core__Array__T__N________________________integral__constant__size_548