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.
Служит указанием по форматированию для управления форматом представления и точностью при выводе значений логов.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: ae5714d3cea4ПроисхождениеОткрытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Служит указанием по форматированию для управления форматом представления и точностью при выводе значений логов.
Структура ara::log::Format служит указанием по форматированию в системе логирования и объединяет спецификатор формата fmt ([SWS_LOG_00225]) со значением точности precision ([SWS_LOG_00226]). Экземпляры предпочтительно создавать с помощью предоставленных вспомогательных функций, при этом интерпретация precision в зависимости от типа формата различает минимальное количество разрядов для целых чисел и знаки после запятой для чисел с плавающей запятой. Для целочисленных типов точность, равная нулю, трактуется как единица, тогда как при Fmt::kDefault это поле полностью игнорируется.
Контекст
Структура данных ara::log::Format служит в платформе логирования AUTOSAR Adaptive Platform указанием по форматированию для вывода форматированных значений. Для этого она объединяет два ключевых свойства: спецификатор формата fmt перечислимого типа Fmt ([SWS_LOG_00225]) и соответствующую точность precision в виде std::uint16_t ([SWS_LOG_00226]). Участниками взаимодействия являются компоненты вывода и потоки форматирования модуля логирования, а также логика приложения, создающая лог-сообщения с форматированным выводом текста. Интерпретация: упомянутые в спецификации вспомогательные функции для инстанцирования, вероятно, расположены непосредственно в модуле ara::log, чтобы предоставлять стандартизированные форматирования. Вопрос Q-1c465e69c99359fa (открытый)
Жизненный цикл
Являясь финальной структурой данных (struct Format final), ara::log::Format не имеет внутреннего конечного автомата и сложных фазовых переходов. Хотя атрибуты объявлены как открытые переменные ([SWS_LOG_00225], [SWS_LOG_00226]), спецификация прямо требует не создавать экземпляры вручную, а использовать вместо этого предоставленные вспомогательные функции. Экземпляры обычно представляют собой короткоживущие объекты-значения, передаваемые по копии или ссылке в потоки логов. Интерпретация: поскольку структура не имеет внутренней синхронизации, копии и одновременный доступ на чтение через границы потоков, вероятно, являются потокобезопасными, тогда как модифицирующий доступ должен синхронизироваться извне. Вопрос Q-bd0f1147e9472c19 (открытый)
Путь использования
Типичное использование включает задание спецификатора формата fmt ([SWS_LOG_00225]) и указание требуемой точности precision ([SWS_LOG_00226]). Интерпретация precision определяется выбранным типом в fmt:
Целочисленные типы: для Fmt::kDec, Fmt::kOct, Fmt::kHex и Fmt::kBinprecision обозначает минимальное количество выводимых цифр, аналогично форматированию через std::printf("%.7d").
Типы с плавающей запятой с фиксированной и экспоненциальной формой представления: при Fmt::kDecFloat, Fmt::kEngFloat и Fmt::kHexFloatprecision определяет точное количество знаков после запятой.
Автоматическое представление с плавающей запятой: при Fmt::kAutoFloatprecision определяет количество значащих цифр по правилам спецификатора формата %g в std::printf.
Стандартное форматирование: если fmt содержит значение Fmt::kDefault, указание в precision игнорируется и применяется зависящее от реализации форматирование.
Диаграмма деятельности: логика ветвления для вычисления precision в зависимости от fmt. Источники: [SWS_LOG_00225], [SWS_LOG_00226]
Сценарии ошибок
Структура не определяет кодов ошибок или исключений; граничные случаи обрабатываются отказоустойчиво и детерминированно. Для целочисленных спецификаторов формата (Fmt::kDec, Fmt::kOct, Fmt::kHex, Fmt::kBin) значение precision = 0 ([SWS_LOG_00226]) интерпретируется семантически идентично значению 1, чтобы предотвратить пустой вывод. Если fmt установлено в Fmt::kDefault ([SWS_LOG_00225]), заданное значение в precision не приводит к состоянию ошибки, а просто отбрасывается.
Данное руководство основано на требованиях спецификации модуля логирования AUTOSAR Adaptive Platform R25-11.
UML-диаграмма классов
Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.
gemini-3.8-flash-low· 2026-10-13 · Немецкий оригинал