A type holding a formatting hint. The interpretation of precision depends on fmt: For integral types (i.e. Fmt::kDec, Fmt::kOct, Fmt::kHex, Fmt::kBin), precision is interpreted as the minimum number of digits to output, similar to e.g. std::printf("%.7d"). For the floating-point specifiers Fmt::kDecFloat, Fmt::kEngFloat and Fmt::kHexFloat, precision denotes the exact number of digits to be shown after the decimal point; for Fmt::kAutoFloat, precision denotes the number of significant digits to be shown according to the rules of the std::printf "%g" specifier. If fmt is Fmt::kDefault, the precision field is ignored, and an implementation-defined formatting is applied. For integral types, if precision is 0, it is interpreted the same as if it was 1. For convenience, there are helper functions to create specific instances of this struct. The helper functions should be used instead of creating instances manually.
Sert d'indication de formatage pour contrôler le format d'affichage et la précision lors de l'émission de valeurs de log.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : ae5714d3cea4ProvenanceQuestions ouvertes (2)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Sert d'indication de formatage pour contrôler le format d'affichage et la précision lors de l'émission de valeurs de log.
La structure ara::log::Format sert d'indication de formatage dans le système de journalisation et regroupe le spécificateur de format fmt ([SWS_LOG_00225]) avec l'indication de précision precision ([SWS_LOG_00226]). Les instances doivent de préférence être créées via les fonctions utilitaires fournies, l'évaluation de precision distinguant, selon le type de format, entre le nombre minimal de chiffres pour les entiers et le nombre de décimales pour les nombres à virgule flottante. Pour les types entiers, une précision de zéro est traitée comme un, tandis que le champ sous Fmt::kDefault est entièrement ignoré.
Contexte
La structure de données ara::log::Format sert d'indication de formatage dans le framework de journalisation de l'AUTOSAR Adaptive Platform pour la sortie de valeurs formatées. Elle regroupe à cet effet deux propriétés centrales : l'indication de format fmt de type énuméré Fmt ([SWS_LOG_00225]) ainsi que la précision associée precision en tant que std::uint16_t ([SWS_LOG_00226]). Les partenaires d'interaction sont les composants de sortie et les flux de formatage du module de journalisation, ainsi que la logique applicative qui génère des messages de log avec une sortie de texte formatée. Interprétation : les fonctions utilitaires d'instanciation mentionnées dans la spécification devraient se situer directement dans le module ara::log afin de fournir des formatages standardisés. Question Q-1c465e69c99359fa (ouverte)
Cycle de vie
En tant que structure de données finale (struct Format final), ara::log::Format ne possède pas d'automate à états interne ni de transitions de phase complexes. Bien que les attributs soient déclarés comme variables publiques ([SWS_LOG_00225], [SWS_LOG_00226]), la spécification exige expressément de ne pas créer les instances manuellement, mais d'utiliser à la place les fonctions utilitaires fournies. Les exemplaires sont typiquement des objets-valeurs à courte durée de vie, passés par copie ou par référence aux flux de log. Interprétation : la structure ne présentant aucune synchronisation interne, les copies et les accès simultanés en lecture à travers les frontières de threads devraient être sûrs pour les threads, tandis que les accès modificateurs doivent être synchronisés de manière externe. Question Q-bd0f1147e9472c19 (ouverte)
Parcours d'utilisation
L'utilisation typique comprend la définition du spécificateur de format fmt ([SWS_LOG_00225]) et l'indication de la précision souhaitée precision ([SWS_LOG_00226]). L'évaluation de precision dépend du type sélectionné dans fmt :
Types entiers : pour Fmt::kDec, Fmt::kOct, Fmt::kHex et Fmt::kBin, precision désigne le nombre minimal de chiffres à afficher, de manière analogue au formatage via std::printf("%.7d").
Types à virgule flottante avec représentation à virgule fixe et exponentielle : pour Fmt::kDecFloat, Fmt::kEngFloat et Fmt::kHexFloat, precision définit le nombre exact de décimales.
Représentation automatique à virgule flottante : sous Fmt::kAutoFloat, precision définit le nombre de chiffres significatifs selon les règles du spécificateur de format %g dans std::printf.
Formatage par défaut : lorsque fmt porte la valeur Fmt::kDefault, l'indication figurant dans precision est ignorée et un formatage dépendant de l'implémentation est appliqué.
Diagramme d'activité : logique de branchement pour l'évaluation de precision en fonction de fmt. Sources : [SWS_LOG_00225], [SWS_LOG_00226]
Scénarios d'erreur
La structure ne définit aucun code d'erreur ni aucune exception ; les cas limites sont au contraire traités de manière tolérante aux pannes et déterministe. Pour les identificateurs de format entiers (Fmt::kDec, Fmt::kOct, Fmt::kHex, Fmt::kBin), une valeur de precision = 0 ([SWS_LOG_00226]) est évaluée de façon sémantiquement identique à une valeur de 1 afin d'empêcher les sorties vides. Si fmt est défini sur Fmt::kDefault ([SWS_LOG_00225]), une valeur définie dans precision ne conduit pas à un état d'erreur, mais est rejetée silencieusement.
Ce guide se base sur les exigences de la spécification pour le module de journalisation de l'AUTOSAR Adaptive Platform R25-11.
Diagramme de classes UML
Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.
gemini-3.8-flash-low· 2026-10-13 · Original allemand