exponenta event banner

Правило AUTOSAR C++ 14 A2-13-2

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

Описание

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

Строковые литералы с различными префиксами кодирования не должны конкатенироваться.

Объяснение

Узкие строковые литералы заключены в двойные кавычки без префикса. Широкие строковые литералы заключены в двойные кавычки с префиксом L вне кавычек. См. строковые литералы.

Конкатенация узких и широких строковых литералов может привести к неопределённому поведению.

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

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

Примеры

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

char array[] = "Hello" "World";
wchar_t w_array[] = L"Hello" L"World";
wchar_t mixed[] = "Hello" L"World"; //Noncompliant

В этом примере при инициализации массива mixed, узкий строковый литерал "Hello" конкатенируется с широким строковым литералом L"World".

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

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