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.
Dient als Formatierungshinweis zur Steuerung von Darstellungsformat und Genauigkeit bei der Ausgabe von Log-Werten.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: ae5714d3cea4HerkunftOffene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Dient als Formatierungshinweis zur Steuerung von Darstellungsformat und Genauigkeit bei der Ausgabe von Log-Werten.
Die Struktur ara::log::Format dient als Formatierungshinweis im Logging-System und bündelt den Formatspezifizierer fmt ([SWS_LOG_00225]) mit der Genauigkeitsangabe precision ([SWS_LOG_00226]). Instanzen sollten bevorzugt über bereitgestellte Hilfsfunktionen erzeugt werden, wobei die Auswertung von precision je nach Formattyp zwischen Mindeststellenanzahl bei Ganzzahlen und Nachkommastellen bei Gleitkommazahlen unterscheidet. Bei ganzzahligen Typen wird eine Genauigkeit von null wie eins behandelt, während das Feld unter Fmt::kDefault vollständig ignoriert wird.
Kontext
Die Datenstruktur ara::log::Format dient im Logging-Framework der AUTOSAR Adaptive Platform als Formatierungshinweis zur Ausgabe formatierter Werte. Sie bündelt hierzu zwei zentrale Eigenschaften: die Formatangabe fmt vom Aufzählungstyp Fmt ([SWS_LOG_00225]) sowie die zugehörige Genauigkeit precision als std::uint16_t ([SWS_LOG_00226]). Interaktionspartner sind die Ausgabekomponenten und Formatierungsströme des Logging-Moduls sowie die Anwendungslogik, die Log-Meldungen mit formatierter Textausgabe erzeugt. Interpretation: Die in der Spezifikation erwähnten Hilfsfunktionen zur Instanziierung dürften direkt im Modul ara::log angesiedelt sein, um standardisierte Formatierungen bereitzustellen. Frage Q-1c465e69c99359fa (offen)
Lebenszyklus
Als finale Datenstruktur (struct Format final) besitzt ara::log::Format keinen internen Zustandsautomaten und keine komplexen Phasenübergänge. Obwohl die Attribute als öffentliche Variablen deklariert sind ([SWS_LOG_00225], [SWS_LOG_00226]), fordert die Spezifikation ausdrücklich, Instanzen nicht manuell anzulegen, sondern stattdessen die bereitgestellten Hilfsfunktionen zu verwenden. Exemplare sind typischerweise kurzlebige Wertobjekte, die per Kopie oder Referenz an Log-Streams übergeben werden. Interpretation: Da die Struktur keine interne Synchronisation aufweist, dürften Kopien und gleichzeitige Lesezugriffe über Thread-Grenzen hinweg threadsicher sein, während veränderliche Zugriffe extern synchronisiert werden müssen. Frage Q-bd0f1147e9472c19 (offen)
Nutzungspfad
Die typische Verwendung umfasst die Festlegung des Formatspezifizierers fmt ([SWS_LOG_00225]) und die Angabe der gewünschten Genauigkeit precision ([SWS_LOG_00226]). Die Auswertung von precision richtet sich nach dem gewählten Typ in fmt:
Ganzzahlige Typen: Für Fmt::kDec, Fmt::kOct, Fmt::kHex und Fmt::kBin bezeichnet precision die Mindestanzahl an auszugebenden Ziffern, analog zur Formatierung über std::printf("%.7d").
Gleitkommatypen mit Festkomma- und Exponentialdarstellung: Bei Fmt::kDecFloat, Fmt::kEngFloat und Fmt::kHexFloat legt precision die exakte Anzahl der Nachkommastellen fest.
Automatische Gleitkommadarstellung: Unter Fmt::kAutoFloat definiert precision die Anzahl der signifikanten Stellen nach den Regeln des Formatspezifizierers %g in std::printf.
Standardformatierung: Wenn fmt den Wert Fmt::kDefault führt, wird die Angabe in precision ignoriert und eine implementierungsabhängige Formatierung angewandt.
Aktivitätsdiagramm: Verzweigungslogik zur Auswertung von precision abhängig von fmt. Quellen: [SWS_LOG_00225], [SWS_LOG_00226]
Fehlerszenarien
Die Struktur definiert keine Fehlercodes oder Ausnahmen; Grenzfälle werden stattdessen fehlertolerant und deterministisch behandelt. Bei ganzzahligen Formatbezeichnern (Fmt::kDec, Fmt::kOct, Fmt::kHex, Fmt::kBin) wird ein Wert von precision = 0 ([SWS_LOG_00226]) semantisch identisch zu einem Wert von 1 ausgewertet, um Leerausgaben zu verhindern. Wird fmt auf Fmt::kDefault ([SWS_LOG_00225]) gesetzt, führt ein gesetzter Wert in precision nicht zu einem Fehlerzustand, sondern wird stillschweigend verworfen.
Dieser Leitfaden basiert auf den Vorgaben der Spezifikation für das Logging-Modul der AUTOSAR Adaptive Platform R25-11.
UML-Klassendiagramm
Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.
gemini-3.8-flash-medium· 2026-10-13