exponenta event banner

Правило AUTOSAR C++ 14 M4-5-3

Выражения с типом (равнина) случайная работа и wchar_t не должны использоваться в качестве операндов встроенным операторам кроме оператора назначения =, операторы равенства == и! =, и одноместное & оператор

Описание

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

Выражения с типом (равнина) случайная работа и wchar_t не должны использоваться в качестве операндов встроенным операторам кроме оператора назначения =, операторы равенства == и! =, и одноместное & оператор.

Объяснение

Стандарт C++ 03 требует только, чтобы символы'0' кому '9' иметь последовательные значения. Другие символы не имеют четко определенных значений. При использовании этих символов в операциях, отличных от упомянутых в правиле, неявно используются их базовые значения, что может привести к неожиданным результатам.

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

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

Примеры

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

void charManipulations (char ch) {
   
    char initChar = 'a'; //Compliant
    char finalChar = 'z'; //Compliant
    
    if(ch == initChar) {} //Compliant 
    if( (ch >= initChar) && (ch <= finalChar)) {} //Noncompliant 
    else if( (ch >= '0') && (ch <= '9') ) {} //Compliant by exception
}

В этом примере операнды символов не нарушают правило при использовании с = и == операторов. Символьные операнды также могут использоваться с реляционными операторами, если сравнение выполняется с цифрами '0' кому '9'.

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

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