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 opmaakinstructie voor het aansturen van weergaveformaat en precisie bij het uitvoeren van logwaarden.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: ae5714d3cea4HerkomstOpen vragen (2)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Dient als opmaakinstructie voor het aansturen van weergaveformaat en precisie bij het uitvoeren van logwaarden.
De structuur ara::log::Format dient als opmaakinstructie in het loggingsysteem en bundelt de formatspecificator fmt ([SWS_LOG_00225]) met de precisieopgave precision ([SWS_LOG_00226]). Instanties moeten bij voorkeur worden aangemaakt via beschikbaar gestelde hulpfuncties, waarbij de evaluatie van precision afhankelijk van het formattype onderscheid maakt tussen het minimumaantal cijfers bij gehele getallen en het aantal decimalen bij drijvende-kommagetallen. Bij integer-typen wordt een precisie van nul behandeld als één, terwijl het veld onder Fmt::kDefault volledig wordt genegeerd.
Context
De datastructuur ara::log::Format dient in het loggingframework van het AUTOSAR Adaptive Platform als opmaakinstructie voor het uitvoeren van geformatteerde waarden. Deze bundelt hiertoe twee centrale eigenschappen: de formaatspecificatie fmt van het enumeratietype Fmt ([SWS_LOG_00225]) en de bijbehorende precisie precision als std::uint16_t ([SWS_LOG_00226]). Interactiepartners zijn de uitvoercomponenten en opmaakstromen van de loggingmodule, evenals de applicatielogica die logberichten met geformatteerde tekstuitvoer genereert. Interpretatie: de in de specificatie genoemde hulpfuncties voor instantiëring bevinden zich vermoedelijk direct in module ara::log om gestandaardiseerde opmaak te bieden. Vraag Q-1c465e69c99359fa (open)
Levenscyclus
Als finale datastructuur (struct Format final) bezit ara::log::Format geen interne toestandsautomaat en geen complexe faseovergangen. Hoewel de attributen als publieke variabelen zijn gedeclareerd ([SWS_LOG_00225], [SWS_LOG_00226]), vereist de specificatie uitdrukkelijk om instanties niet handmatig aan te maken, maar in plaats daarvan de beschikbaar gestelde hulpfuncties te gebruiken. Exemplaren zijn typisch kortlevende waardeobjecten die via kopie of referentie aan logstreams worden overgedragen. Interpretatie: aangezien de structuur geen interne synchronisatie heeft, zijn kopieën en gelijktijdige leestoegangen over threadgrenzen heen vermoedelijk thread-safe, terwijl muterende toegangen extern moeten worden gesynchroniseerd. Vraag Q-bd0f1147e9472c19 (open)
Gebruikspad
Het typische gebruik omvat het vastleggen van de formatspecificator fmt ([SWS_LOG_00225]) en het opgeven van de gewenste precisie precision ([SWS_LOG_00226]). De evaluatie van precision richt zich naar het gekozen type in fmt:
Integer-typen: voor Fmt::kDec, Fmt::kOct, Fmt::kHex en Fmt::kBin geeft precision het minimumaantal uit te voeren cijfers aan, analoog aan de formattering via std::printf("%.7d").
Drijvende-kommatypen met vaste-komma- en exponentiële weergave: bij Fmt::kDecFloat, Fmt::kEngFloat en Fmt::kHexFloat legt precision het exacte aantal decimalen vast.
Automatische drijvende-kommaweergave: onder Fmt::kAutoFloat definieert precision het aantal significante cijfers volgens de regels van de formatspecificator %g in std::printf.
Standaardformattering: wanneer fmt de waarde Fmt::kDefault heeft, wordt de opgave in precision genegeerd en wordt een implementatieafhankelijke formattering toegepast.
Activiteitendiagram: vertakkingslogica voor de evaluatie van precision afhankelijk van fmt. Bronnen: [SWS_LOG_00225], [SWS_LOG_00226]
Foutscenario's
De structuur definieert geen foutcodes of excepties; grensgevallen worden daarentegen fouttolerant en deterministisch behandeld. Bij integer-formatspecificatoren (Fmt::kDec, Fmt::kOct, Fmt::kHex, Fmt::kBin) wordt een waarde van precision = 0 ([SWS_LOG_00226]) semantisch identiek aan een waarde van 1 geëvalueerd om lege uitvoer te voorkomen. Wordt fmt op Fmt::kDefault ([SWS_LOG_00225]) gezet, dan leidt een ingestelde waarde in precision niet tot een fouttoestand, maar wordt deze stilzwijgend genegeerd.
Deze handleiding is gebaseerd op de bepalingen van de specificatie voor de loggingmodule van het AUTOSAR Adaptive Platform R25-11.
UML-klassendiagram
Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.
gemini-3.8-flash-low· 2026-10-13 · Duits origineel