exponenta event banner

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

Тип wchar_t не должен использоваться

Описание

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

Тип wchar_t не должен использоваться.

Объяснение

Размер wchar_t зависит от реализации. Если вы используете wchar_t для значений Юникода код привязан к определенному компилятору.

Для улучшения переносимости кода используйте char16_t и char32_t вместо этого. Это стандартные типы, введенные в C++ 11 для текстовых строк с кодировкой UTF-16 и UTF-32.

Внедрение Polyspace

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

Если вы не хотите устранять проблему, добавьте комментарий, оправдывающий результат. См. раздел Результаты анализа пространства адресов с помощью исправлений ошибок или обоснований.

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

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

Примеры

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

char16_t str1[] = u"A UTF-16 string";  //Compliant
char32_t str2[] = U"A UTF-32 string";  //Compliant 
wchar_t str3[] = L"A Unicode string";  //Noncompliant

Использование wchar_t нарушает это правило. Вместо этого типы char16_t и char32_t может использоваться.

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

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