MISRA C ++:2008 правил 2-13-1

Только те escape-последовательности, которые заданы в ISO/IEC 14882:2003, должны использоваться

Описание

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

Только те escape-последовательности, которые заданы в ISO/IEC 14882:2003, должны использоваться.

Объяснение

Escape-последовательности являются определенными специальными символами, представленными в строке и символьных литералах. Они записаны с наклонной чертой влево (\), сопровождаемый символом.

Стандарт C++ (ISO/IEC 14882:2003, Секунда. 2.13.2), задает список escape-последовательностей. Смотрите Escape-последовательности. Использование escape-последовательностей (наклонная черта влево, сопровождаемая символом) вне того списка, приводит к неопределенному поведению.

Обменивайтесь сообщениями в отчете

Только те escape-последовательности, которые заданы в ISO/IEC 14882:2003, должны использоваться.

\char не является escape-последовательностью ISO/IEC.

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

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

Примеры

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

void func () {
  const char a[2] = "\k"; \\Noncompliant
  const char b[2] = "\b"; \\Compliant
}

В этом примере \k не является распознанной escape-последовательностью.

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

Группа: лексические соглашения
Категория: необходимый

Введенный в R2013b