AUTOSAR C++14 Rule A13-6-1

Диафрагмы последовательностей цифры 'должны только использоваться можно следующим образом: (1) для десятичного числа, каждых 3 цифр, (2) для шестнадцатеричного, каждых 2 цифр, (3) для двоичного файла, каждых 4 цифр

Описание

Управляйте определением

Диафрагмы последовательностей цифры 'должны только использоваться можно следующим образом: (1) для десятичного числа, каждых 3 цифр, (2) для шестнадцатеричного, каждых 2 цифр, (3) для двоичного файла, каждых 4 цифр.

Объяснение

Начиная с C++ 14, можно ввести диафрагму ' разделить цифры в последовательности цифры для лучшей удобочитаемости. Для непротиворечивости через ваш код следуйте этому соглашению при вводе диафрагмы последовательности цифры:

  • В десятичных значениях, начиная справа, помещают диафрагму после каждых трех цифр, например, 3'000'000.

  • В шестнадцатеричных значениях, начиная справа, помещают диафрагму после каждых двух цифр, например, 0xF'FF'0F.

  • В двоичных значениях, начиная справа, помещают диафрагму после каждых четырех цифр, например, 0b1001'0011'0100.

Если вы сопоставимы через свой код, разработчик или рецензент кода могут следовать вашему коду более легко и возможно оценить порядок величины значения от диафрагм последовательности цифры.

Реализация Polyspace

Это средство проверки следует техническим требованиям C++ AUTOSAR 14 правил.

Для целых чисел средство проверки начинает проверять справа. Например, средство проверки повышает нарушение на значении 45'30'00, потому что запуск справа, диафрагма последовательности цифры появляется после двух цифр вместо ожидаемых трех.

Для чисел с плавающей запятой средство проверки начинает проверку с десятичной точки и доходов за пределы. Проверки средства проверки:

  • Часть перед десятичным числом, запускающимся справа.

  • Часть после десятичного числа, запускающегося слева.

Для чисел с плавающей запятой с мантиссой и экспонентой, то же правило как целые числа применяется к экспоненте. Например, в десятичной записи, средство проверки проверяет экспоненты, запускающиеся справа, и повышает нарушение, если диафрагмы последовательности цифры помещаются, например, после каждых двух цифр вместо три.

Поиск и устранение проблем

Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.

Примеры

развернуть все

#include <cstdint>

std::uint32_t largeNum = 3'0000'0000; //Noncompliant
std::uint32_t smallerNum = 3'000'000;  //Compliant
std::uint32_t evenSmallerNum = 3'00'00; //Noncompliant

std::uint32_t largeHexNum = 0xFF'FF'FF'FF; //Compliant
std::uint32_t smallerHexNum = 0xFFF'FFF; //Noncompliant

В этом примере размещение диафрагм последовательности цифры совместимо, если диафрагмы следуют ожидаемому соглашению:

  • В десятичных числах, начиная справа, диафрагма помещается после каждых трех цифр.

  • В шестнадцатеричных числах, начиная справа, диафрагма помещается после каждых двух цифр.

#include <cstdint>

float PI = 3.1'415'926'53; //Noncompliant
float pi = 3.141'592'653; //Compliant;

float one_LB_to_KG = 0.45'359'237; //Noncompliant
float one_lb_to_kg = 0.453'592'37; //Compliant

В этом примере то же число с плавающей запятой присвоено двум различным переменным, но размещение диафрагм последовательности цифры отличается. Размещение совместимо, если диафрагмы следуют ожидаемому соглашению:

  • Для цифр после десятичного числа, начиная слева, диафрагма помещается после каждых трех цифр.

  • Для цифр перед десятичным числом, начиная справа, диафрагма помещается после каждых трех цифр.

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

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

Группа: Перегрузка
Категория: необходимый, автоматизированный
Введенный в R2021a