exponenta event banner

Правило AUTOSAR C++ 14 A13-1-2

Определяемые пользователем суффиксы определяемых пользователем буквенных операторов должны начинаться с подчеркивания, за которым следует одна или несколько букв

Описание

Определение правила

Определяемые пользователем суффиксы определяемых пользователем буквенных операторов должны начинаться с подчеркивания, за которым следует одна или несколько букв.

Объяснение

Так как C++ 11, можно добавлять суффиксы к литералам, преобразующим числовые значения под колпаком. Например, в коде, где все вычисления выполняются в общей единице измерения, можно оставить преобразования единиц в выделенные операторы и просто использовать буквенные суффиксы для единиц измерения при определении постоянных значений.

В этом примере буквенные суффиксы _m и _km разрешить вызовы operator"" _m() и operator"" _km() соответственно. Операторы обеспечивают преобразование всех значений в одну единицу измерения.

constexpr long double operator"" _m(long double metres) {
    return metres;
}

constexpr long double operator"" _km(long double kilometres) {
    return 1000*kilometres;
}
...
long double minSteps = 100.0_m;
long double interCityDist = 100.0_km;

Определяемые пользователем буквенные суффиксы должны начинаться с подчеркивания (_). Буквенные суффиксы, не начинающиеся с подчеркивания, зарезервированы для стандартной библиотеки.

Внедрение Polyspace

Средство проверки правил помечает определения формы:

operator "" suffix
где suffix не начинается с символа подчеркивания или после него, содержит символы, отличные от букв (цифры, специальные символы и т.д.).

Поиск неисправностей

Если вы ожидаете нарушения правила, но не видите его, обратитесь к разделу Нарушения стандартов кодирования не отображаются.

Проверить информацию

Группа: Перегрузка
Категория: Обязательно, Автоматизировано
Представлен в R2020a