module ara::core — Adaptive Platform Core
Guide du moduleGÉNÉRÉ PAR IA
Fournit des types de base C++ à l'échelle de la plateforme, des types de résultats à sécurité intégrée et des pools de mémoire déterministes.
Fournit des types de base C++ à l'échelle de la plateforme, des types de résultats à sécurité intégrée et des pools de mémoire déterministes.
Le module core fournit les types de base à l'échelle de la plateforme, les pools de mémoire PMR et les primitives de synchronisation asynchrones Future et Promise pour l'AUTOSAR Adaptive Platform (SWArchitecture p. 60, [SWS_CORE_00326]). Pour satisfaire aux exigences strictes de sécurité et de temps réel, le type somme Result<T, E> remplace les exceptions classiques par des valeurs de retour déterministes ([SWS_CORE_00751]). En cas d'erreurs système irréparables, la fonction fail-fast Abort() garantit l'interruption immédiate et contrôlée du processus ([SWS_CORE_00052]).
Le module core fait office de cluster fonctionnel de base de l'AUTOSAR Adaptive Platform et fournit des structures de données uniformes, des primitives de communication asynchrones et des mécanismes de gestion de la mémoire pour tous les services de plateforme et applications (SWArchitecture p. 60). Afin de garantir des déroulements déterministes et la sécurité fonctionnelle dans les environnements de système d'exploitation POSIX, core remplace les exceptions C++ conventionnelles par le type de résultat à sûreté de typage Result<T, E> et contrôle les allocations de mémoire dynamique via des allocateurs polymorphes ([SWS_CORE_00041], [SWS_CORE_00751]).
Diagramme de contexte : intégration du cluster fonctionnel ara::core et de ses domaines d'interface dans l'Adaptive Platform. Sources : SWArchitecture p. 60, SWArchitecture p. 36
Pour la synchronisation concurrente, core implémente l'interaction de Future et Promise ([SWS_CORE_00326], [SWS_CORE_00344]). Tandis que le producteur fournit l'état de calcul ou l'erreur via le Promise, Future permet au consommateur aussi bien des interrogations avec temporisation via wait_for() que des retransmissions réactives au moyen de then() ([SWS_CORE_00329], [SWS_CORE_00331], TimeSynchronization p. 90).
Diagramme d'activité : chemin d'évaluation déterministe d'un objet Result dans le cas sans erreur et en cas d'erreur. Sources : [SWS_CORE_00751], [SWS_CORE_00755], [SWS_CORE_00757], [SWS_CORE_00766]
Afin d'éviter la fragmentation, le module met à disposition des ressources de pool telles que SynchronizedPoolResource et UnsynchronizedPoolResource, qui limitent les allocations à des blocs de taille fixe ([SWS_CORE_00030], [SWS_CORE_00067], SWArchitecture p. 61). Si un état d'erreur insurmontable survient, la plateforme force via Abort(), sous réserve de l'exécution préalable d'un AbortHandler enregistré, la terminaison immédiate fail-fast du processus ([SWS_CORE_00051], [SWS_CORE_00052]).
Rôle système et base architecturale d'ara::core
Le module core constitue le socle fondamental de l'AUTOSAR Adaptive Platform et fournit les définitions de types élémentaires, les mécanismes de gestion de la mémoire ainsi que les interfaces de base pour tous les clusters fonctionnels et Adaptive Applications (SWArchitecture p. 60). Contrairement aux services spécifiques à l'application, core est conçu pour être local au processus et définit les abstractions essentielles pour réaliser des logiciels C++ portables, déterministes et efficaces en ressources au sein d'environnements de système d'exploitation POSIX (SWArchitecture p. 36).
Sur le plan architectural, le module sert d'interface standardisée entre les fonctions du système d'exploitation proches du matériel et les couches supérieures de l'Adaptive Platform (SWArchitecture p. 60). À cet égard, core répond aux exigences centrales de sécurité fonctionnelle (ASIL) et de capacité temps réel en rendant contrôlables les allocations dynamiques de mémoire et en renonçant à l'utilisation systématique des exceptions C++ dans le flux de contrôle standard ([SWS_CORE_00052], [SWS_CORE_00751]). La mise à disposition de types de base à l'échelle de la plateforme évite les solutions isolées propriétaires entre composants middleware tels que ara::com ou ara::ts (ARAComAPI p. 46, TimeSynchronization p. 90).
Diagramme de contexte : intégration du cluster fonctionnel ara::core et de ses domaines d'interface dans l'Adaptive Platform. Sources : SWArchitecture p. 60, SWArchitecture p. 36
Flux de contrôle et de données asynchrones via Future et Promise
Pour une interaction concurrente et découplée, ara::core implémente le patron producteur-consommateur au moyen de Promise et Future ([SWS_CORE_00326], [SWS_CORE_00341]). Un Promise représente l'interface d'écriture via laquelle un worker asynchrone ou un squelette de communication dépose le résultat ou une erreur ([SWS_CORE_00345], [SWS_CORE_00353]). La contrepartie consommatrice est constituée par Future, qui surveille l'état partagé (Shared State) et encapsule l'accès à sûreté de typage à la valeur de retour (ARAComAPI p. 46, ARAComAPI p. 59).
Afin d'éviter le blocage des threads clients, Future propose, outre la fonction d'interrogation synchrone et bloquante get() ([SWS_CORE_00326]), des opérations d'attente à durée limitée : wait_for() et wait_until() renvoient un indicateur d'état de type FutureStatus ([SWS_CORE_00329], [SWS_CORE_00330], ARAComAPI p. 1). Via la méthode then(), il est possible d'enregistrer des callbacks qui sont automatiquement exécutés à l'arrivée du résultat ; il est possible d'y intégrer au choix un Executor spécifique à l'utilisateur pour diriger l'exécution vers des pools de threads déterminés ([SWS_CORE_00024], [SWS_CORE_00331], [SWS_CORE_00337]). Les opérations de copie sont explicitement interdites pour Future et Promise afin de garantir des relations de propriété exclusives ([SWS_CORE_00334], [SWS_CORE_00350]).
Diagramme de séquence : transmission asynchrone de valeurs et d'erreurs entre le worker et l'application via Promise et Future. Sources : [SWS_CORE_00326], [SWS_CORE_00329], [SWS_CORE_00344], [SWS_CORE_00345], TimeSynchronization p. 90
Gestion déterministe des erreurs : Result, ErrorCode et ErrorDomain
Un aspect fondamental de la programmation orientée sécurité dans l'Adaptive Platform est l'évitement strict des exceptions non contrôlées en fonctionnement normal. ara::core::Result<T, E> sert d'encapsulation de type somme à sûreté de typage qui contient soit une valeur de charge utile de succès de type T, soit un objet d'erreur de type E ([SWS_CORE_00721], [SWS_CORE_00723], [SWS_CORE_00751]). Des spécialisations existent aussi bien pour les types de référence Result<T&, E> que pour les opérations sans valeur de retour Result<void, E> ([SWS_CORE_00821], [SWS_CORE_00908]).
L'état contenu est vérifié via HasValue() ou l'opérateur de conversion explicite operator bool() ([SWS_CORE_00751], [SWS_CORE_00752]). L'accès aux données utiles s'effectue via Value() ou operator*(), tandis que les erreurs sont interrogées via Error() ([SWS_CORE_00755], [SWS_CORE_00757]). Pour le traitement fonctionnel ultérieur et la propagation des erreurs, Result fournit des méthodes telles que Bind(), ValueOr() et Resolve() ([SWS_CORE_00761], [SWS_CORE_00768]). Les erreurs sont modélisées via ErrorCode, qui associe un code d'erreur numérique CodeType à un identifiant de domaine unique ErrorDomain ainsi qu'à des données supplémentaires de diagnostic optionnelles SupportDataType ([SWS_CORE_00121], [SWS_CORE_00122], [SWS_CORE_00512]). La méthode ValueOrThrow() sert de passerelle pour les environnements avec gestion des exceptions activée, mais lève en cas d'erreur l'exception associée au domaine ([SWS_CORE_00154], [SWS_CORE_00766]).
Diagramme d'activité : chemin d'évaluation déterministe d'un objet Result dans le cas sans erreur et en cas d'erreur. Sources : [SWS_CORE_00751], [SWS_CORE_00755], [SWS_CORE_00757], [SWS_CORE_00766]
Gestion polymorphe de la mémoire via des ressources de pool
L'allocation dynamique sur le tas standard comporte des risques de non-déterminisme et de fragmentation de la mémoire. ara::core intègre donc une gestion de la mémoire basée sur des ressources de mémoire polymorphes (PMR), inspirée du patron C++ NVI (Non-Virtual Interface) (SWArchitecture p. 61). La classe de base MemoryResource déclare les interfaces publiques allocate() et deallocate(), qui pilotent en interne les méthodes purement virtuelles do_allocate() et do_deallocate() ([SWS_CORE_00041], [SWS_CORE_00061]).
Pour les modèles d'allocation critiques pour le temps réel, des ressources de pool spécialisées sont disponibles : SynchronizedPoolResource offre des allocations thread-safe à partir de tronçons et de tailles de blocs préconfigurés via PoolOptions ([SWS_CORE_00027], [SWS_CORE_00030]). Pour les phases de traitement strictement locales au thread sans surcoût de synchronisation, UnsynchronizedPoolResource est utilisé ([SWS_CORE_00046], [SWS_CORE_00067]). Via release(), l'ensemble de la zone de mémoire allouée peut être restitué en une seule étape à la upstream_resource() située en amont, ce qui empêche efficacement les fuites de mémoire dans les flux de travail orientés phases ([SWS_CORE_00037], [SWS_CORE_00038], [SWS_CORE_00065]).
Diagramme de classes : hiérarchie des ressources de mémoire polymorphes selon le patron Non-Virtual Interface (NVI). Sources : SWArchitecture p. 61, [SWS_CORE_00030], [SWS_CORE_00041], [SWS_CORE_00061]
Types utilitaires et conteneurs fondamentaux (Optional, Array, Vector, Map)
Pour éviter tout comportement indéfini et garantir une sémantique claire, core standardise des conteneurs et des types d'assistance élémentaires. ara::core::Optional<T> représente des valeurs pouvant être présentes ou non, sans devoir recourir à des pointeurs nuls non sécurisés ([SWS_CORE_01103], [SWS_CORE_01104], ARAComAPI p. 1). L'état est interrogé via has_value() ou operator bool(), tandis que les accès s'effectuent via value(), value_or() ou operator*() ([SWS_CORE_01128], [SWS_CORE_01129], [SWS_CORE_01130], [SWS_CORE_01134]). Des surcharges de référence spécifiques Optional<T&> permettent de conserver en toute sécurité des références optionnelles ([SWS_CORE_01151], [SWS_CORE_01167]).
Pour les structures de données à taille fixe, le module fournit Array<T, N>, qui prend en charge l'indexation directe via operator[], l'accès avec vérification des bornes au moyen de at() ainsi que des itérateurs standard ([SWS_CORE_01250], [SWS_CORE_01265], [SWS_CORE_01273]). Les opérateurs de comparaison sont implémentés conformément à des règles de codage strictes avec des retours bool et la sécurité vis-à-vis des exceptions ([SWS_CORE_01290], CPP14Guidelines p. 241). Les séquences à croissance dynamique et les conteneurs associatifs sont couverts par Vector<T, Allocator> et Map<Key, T, Compare, Allocator> ([SWS_CORE_01318], [SWS_CORE_01428]). Les deux types acceptent des allocateurs configurables, de sorte que les allocations peuvent être traitées de manière transparente via les pools polymorphes MemoryResource ([SWS_CORE_00066], [SWS_CORE_01303], [SWS_CORE_01406]).
Comportement en cas d'erreur et terminaison Fail-Fast
Si un processus ne peut pas compenser de manière sûre un état d'erreur critique, le principe Fail-Fast de l'Adaptive Platform s'applique (SWArchitecture p. 60). L'interface Abort() provoque la terminaison immédiate et inconditionnelle du processus en cours d'exécution ([SWS_CORE_00052]). La fonction est déclarée comme [[noreturn]] et noexcept afin de garantir qu'aucune routine de déroulement de pile ni aucun destructeur ne génère d'états consécutifs incorrects ([SWS_CORE_00052], SWArchitecture p. 36).
Afin de sauvegarder des informations de diagnostic volatiles ou d'exécuter d'ultimes actions de journalisation d'urgence avant l'arrêt, les applications peuvent enregistrer des fonctions de rappel spécifiques à l'utilisateur via SetAbortHandler() ou AddAbortHandler() ([SWS_CORE_00050], [SWS_CORE_00051], [SWS_CORE_00054]). Un gestionnaire d'interruption enregistré doit respecter la signature void() noexcept ([SWS_CORE_00053]). Après l'exécution du gestionnaire, la plateforme impose l'arrêt définitif du processus, de sorte qu'aucune poursuite de l'exécution dans un état de mémoire indéfini n'est possible (SWArchitecture p. 60).
Diagramme d'activité : flux de contrôle de l'interruption Fail-Fast via Abort() avec exécution de l'AbortHandler. Sources : SWArchitecture p. 60, [SWS_CORE_00051], [SWS_CORE_00052]
Preuves détaillées supplémentaires
La spécification de core dans la release R25-11 repose sur un ensemble de stipulations normatives et de modèles architecturaux. Pour le cycle de vie des processus et le comportement d'arrêt d'urgence, Initialize(), Deinitialize() ainsi que Abort() et SetAbortHandler() sont constitutifs ([SWS_CORE_00051], [SWS_CORE_00052], SWArchitecture p. 60). Le modèle de communication asynchrone repose principalement sur Future ([SWS_CORE_00326], [SWS_CORE_00329]) et Promise ([SWS_CORE_00344], [SWS_CORE_00345]), dont l'interaction est vérifiée dans des clusters proches des applications tels que ara::com et ara::ts (ARAComAPI p. 46, TimeSynchronization p. 90).
La gestion irréprochable des données et de la mémoire est normée par les spécifications relatives à Result ([SWS_CORE_00751], [SWS_CORE_00766]), ErrorCode ([SWS_CORE_00512]) et aux classes de mémoire PMR SynchronizedPoolResource ainsi que UnsynchronizedPoolResource ([SWS_CORE_00030], [SWS_CORE_00046], SWArchitecture p. 61). De plus, des directives relatives aux conteneurs et aux comparaisons définissent la conservation déterministe des données dans des systèmes complets critiques pour la sécurité ([SWS_CORE_01103], [SWS_CORE_01250], [SWS_CORE_01318], CPP14Guidelines p. 241).
Ce guide a été généré par un assistant de curation IA sur la base de la spécification AUTOSAR pour 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_sizeClasses
ArrayBasicStringBitsetCoreErrorDomainCoreExceptionErrorCodeErrorDomainExceptionExecutorFutureFutureErrorDomainFutureExceptionhashhash (std)in_place_index_tin_place_tin_place_type_tInstanceSpecifieris_nothrow_swappableMapMemoryResourceMonostateMonotonicBufferResourcenullopt_tOptionalPolymorphicAllocatorPoolOptionsPromiseResultSpanSteadyClockStringViewSynchronizedPoolResourcetuple_elementtuple_sizeUnsynchronizedPoolResourceVariantvariant_alternativevariant_sizeVectorFonctions
AbortAbortHandlerPrototypeAddAbortHandleras_bytesas_writable_bytesdataDeinitializeemptyGetCoreErrorDomainGetDefaultResourceGetFutureErrorDomainInitializeNewDeleteResourceNullMemoryResourceSetAbortHandlerSetDefaultResourcesizestring_view_Types
AbortHandlerByteStringvariant_alternative_tÉnumérations
CoreErrcFutureErrcFutureStatusConstantes
dynamic_extentin_placein_place_indexin_place_typenulloptvariant_size_vCarte des thèmes
ara::core
67Aucune donnée d'élément pour cette version
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
Accès 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_01286Comparaison != < <= == > >= 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Échange 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
Comparaison != < <= == > >= 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_03381Concaténation + 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_03363Entrée/sortie 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_03399Conversion 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Échange swap 1
template <typename Allocator> void swap (BasicString< Allocator > &lhs, BasicString< Allocator > &rhs); SWS_CORE_03296Autres 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
Entrée/sortie << >> 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_01755Autres & | ˆ 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.
hérite de ErrorDomain
Exception type thrown for ara::core errors.
hérite de Exception
Encapsulation of an error code
Création 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_05290Comparaison != == 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
base de 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
Spécialisations Future< void, E >
Error domain for errors originating from ara::core::Future and ara::core::Promise
hérite de ErrorDomain
Exception type thrown by ara::core::Future and ara::core::Promise
hérite de 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.
Comparaison != == 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
Échange 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
base de MonotonicBufferResource, SynchronizedPoolResource, UnsynchronizedPoolResource
Comparaison == 1
bool operator== (const MemoryResource &a, const MemoryResource &b) noexcept; SWS_CORE_06561≙ [variant]
Accès 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_01634Comparaison != < <= == > >= 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Échange 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
hérite de MemoryResource
Shall implement std::nullopt_t ≙ std::nullopt_t
Implementation of std::optional
Spécialisations Optional< T & >
Création 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_01140Comparaison != < <= == > >= 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Échange 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
Comparaison == 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
Spécialisations Promise< void, E >
This class is a type that contains either a value or an error
Spécialisations Result< T &, E > Result< void, E >
Comparaison != == 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Échange 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
Création 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
Comparaison != < <= == > >= 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_02186Entrée/sortie << 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
hérite de MemoryResource
Implementation of std::pmr::unsynchronized_pool_resource from [mem.res.pool] ≙ std::pmr::unsynchronized_pool_resource
hérite de MemoryResource
Implementation of std::variant type from [basic.string] ≙ std::variant
≙ [variant]
Spécialisations variant_size< Variant< Types... > > variant_size< const volatile T > variant_size< const T > variant_size< volatile T >
Implementation of std::pmr::vector container from [vector] ≙ std::pmr::vector
Comparaison != < <= == > >= 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Échange 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.
Surcharges 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
Surcharges 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
Surcharges 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
Spécialisations 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
- ara::core 50 Klassen, 194 freie Funktionen
- ara::core::literals::string_view_literals 0 Klassen, 1 freie Funktionen
- std 8 Klassen, 0 freie Funktionen
Diagramme de classes UML du module
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 · Original allemand