MISRA C++:2008 Rule 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