Требуемый C++ AUTOSAR 14 правил кодирования, поддержанных Polyspace Bug Finder

C++ AUTOSAR 14 стандартов классифицируют правила, что совместимый Код С++ должен следовать как требуется. Polyspace® Bug Finder поддерживает 312 из 362 Необходимых C++ AUTOSAR 14 правил кодирования.

Поддерживаемые правила

С R2021b Polyspace поддерживает эти Необходимые правила.

AUTOSAR C++ 14 правилОписаниеСредство проверки Polyspace
AUTOSAR C++ 14 правил A0-1-1Проект не должен содержать экземпляры энергонезависимых переменных, даваемых значения, которые впоследствии не используютсяAUTOSAR C++14 Rule A0-1-1
AUTOSAR C++ 14 правил A0-1-2Значение, возвращенное функцией, имеющей непустой тип возврата, который не является перегруженным оператором, должно использоватьсяAUTOSAR C++14 Rule A0-1-2
AUTOSAR C++ 14 правил A0-1-3Каждая функция, определяемая в анонимном пространстве имен, или статическая функция с внутренним рычажным устройством или функция члена парламента, не занимающего официального поста должны использоватьсяAUTOSAR C++14 Rule A0-1-3
AUTOSAR C++ 14 правил A0-1-4В невиртуальных функциях не должно быть никаких неиспользованных именованных параметровAUTOSAR C++14 Rule A0-1-4
AUTOSAR C++ 14 правил A0-1-5Не должно быть никаких неиспользованных именованных параметров в наборе параметров для виртуальной функции и всех функций, которые заменяют егоAUTOSAR C++14 Rule A0-1-5
AUTOSAR C++ 14 правил A0-4-2Тип долго удваивается, не буду использоватьсяAUTOSAR C++14 Rule A0-4-2
AUTOSAR C++ 14 правил A1-1-1Весь код должен соответствовать ISO/IEC 14882:2014 - Язык программирования C++ и не должен использовать устаревшие функцииAUTOSAR C++14 Rule A1-1-1
AUTOSAR C++ 14 правил A10-1-1Класс не должен быть выведен больше чем из одного базового класса, который не является интерфейсным классомAUTOSAR C++14 Rule A10-1-1
AUTOSAR C++ 14 правил A10-2-1Невиртуальные общедоступные или защищенные функции членства не должны быть переопределены в производных классахAUTOSAR C++14 Rule A10-2-1
AUTOSAR C++ 14 правил A10-3-1Объявление виртуальной функции должно содержать точно один из этих трех спецификаторов: (1) виртуальный, (2) замените, (3) финалAUTOSAR C++14 Rule A10-3-1
AUTOSAR C++ 14 правил A10-3-2Каждая переопределяющая виртуальная функция должна быть объявлена с переопределением или итоговым спецификаторомAUTOSAR C++14 Rule A10-3-2
AUTOSAR C++ 14 правил A10-3-3Виртуальные функции не должны быть введены в итоговом классеAUTOSAR C++14 Rule A10-3-3
AUTOSAR C++ 14 правил A10-3-5Пользовательский оператор присваивания не должен быть виртуальнымAUTOSAR C++14 Rule A10-3-5
AUTOSAR C++ 14 правил A11-0-2Тип, заданный как struct, должен быть: (1) обеспечьте только общедоступные элементы данных, (2) не обеспечивают любые специальные функции членства или методы, (3) не быть основой другого struct или класса, (4) не наследовались другому struct или классуAUTOSAR C++14 Rule A11-0-2
AUTOSAR C++ 14 правил A11-3-1Друг объявления не должен использоватьсяAUTOSAR C++14 Rule A11-3-1
AUTOSAR C++ 14 правил A12-0-1Если класс объявит копию или операцию пересылки или деструктор, или через "=default", "=delete", или через обеспеченное пользователями объявление, то все другие этих пяти специальных функций членства должны быть объявлены такжеAUTOSAR C++14 Rule A12-0-1
AUTOSAR C++ 14 правил A12-0-2Битовые операции и операции, которые принимают представление данных в памяти, не должны выполняться на объектахAUTOSAR C++14 Rule A12-0-2
AUTOSAR C++ 14 правил A12-1-1Конструкторы должны явным образом инициализировать все виртуальные базовые классы, все прямые невиртуальные базовые классы и все нестатические элементы данныхAUTOSAR C++14 Rule A12-1-1
AUTOSAR C++ 14 правил A12-1-2И NSDMI и нестатический инициализатор члена в конструкторе не должны использоваться в том же типеAUTOSAR C++14 Rule A12-1-2
AUTOSAR C++ 14 правил A12-1-3Если все пользовательские конструкторы класса инициализируют элементы данных постоянными значениями, которые являются тем же самым через всех конструкторов, то элементы данных должны быть инициализированы с помощью NSDMI вместо этогоAUTOSAR C++14 Rule A12-1-3
AUTOSAR C++ 14 правил A12-1-4Все конструкторы, которые являются вызываемыми с отдельным аргументом фундаментального типа, должны быть объявлены явныеAUTOSAR C++14 Rule A12-1-4
AUTOSAR C++ 14 правил A12-1-5Общая инициализация класса для непостоянных членов должна быть сделана конструктором делегированияAUTOSAR C++14 Rule A12-1-5
AUTOSAR C++ 14 правил A12-1-6Производные классы, которые не нуждаются в дальнейшей явной инициализации и требуют всех конструкторов от базового класса, должны использовать наследовавшихся конструкторовAUTOSAR C++14 Rule A12-1-6
AUTOSAR C++ 14 правил A12-4-1Деструктор базового класса должен быть общедоступным виртуальным, общедоступным переопределением или защищенный невиртуальныйAUTOSAR C++14 Rule A12-4-1
AUTOSAR C++ 14 правил A12-6-1Все элементы данных класса, которые инициализируются конструктором, должны быть инициализированы с помощью инициализаторов членаAUTOSAR C++14 Rule A12-6-1
AUTOSAR C++ 14 правил A12-7-1Если поведение пользовательской специальной функции членства будет идентично неявно заданной специальной функции членства, то это должно быть задано "=default" или оставлено неопределеннымAUTOSAR C++14 Rule A12-7-1
AUTOSAR C++ 14 правил A12-8-1Переместите и скопируйте конструкторов, перемещу и соответственно скопирую базовые классы и элементы данных класса, без любых побочных эффектовAUTOSAR C++14 Rule A12-8-1
AUTOSAR C++ 14 правил A12-8-3Перемещенный - от объекта не буду получен доступ чтениемAUTOSAR C++14 Rule A12-8-3
AUTOSAR C++ 14 правил A12-8-4Переместитесь конструктор не должен инициализировать его члены класса и базовые классы с помощью семантики копииAUTOSAR C++14 Rule A12-8-4
AUTOSAR C++ 14 правил A12-8-5Присвоение копии и перемещение операторы присваивания должны обработать самоприсвоениеAUTOSAR C++14 Rule A12-8-5
AUTOSAR C++ 14 правил A12-8-6Скопируйте и переместите конструкторов и скопируйте присвоение и переместитесь, операторы присваивания должны быть объявлены защищенным или заданным "=delete" в базовом классеAUTOSAR C++14 Rule A12-8-6
AUTOSAR C++ 14 правил A13-1-2Определяемые пользователем суффиксы определяемых пользователем литеральных операторов должны запуститься с подчеркивания, сопровождаемого одной или несколькими буквамиAUTOSAR C++14 Rule A13-1-2
AUTOSAR C++ 14 правил A13-2-1Оператор присваивания должен возвратить ссылку на "это"AUTOSAR C++14 Rule A13-2-1
AUTOSAR C++ 14 правил A13-2-2Оператор двоичной арифметики и побитовый оператор должны возвратить "prvalue"AUTOSAR C++14 Rule A13-2-2
AUTOSAR C++ 14 правил A13-2-3Оператор отношения должен возвратить булево значениеAUTOSAR C++14 Rule A13-2-3
AUTOSAR C++ 14 правил A13-3-1Функция, которая содержит "передающую ссылку" в качестве ее аргумента, не должна быть перегруженаAUTOSAR C++14 Rule A13-3-1
AUTOSAR C++ 14 правил A13-5-1Если "оператор []" должен быть перегружен с версией неconst, версия const должна также быть реализованаAUTOSAR C++14 Rule A13-5-1
AUTOSAR C++ 14 правил A13-5-2Все пользовательские операторы преобразования должны быть заданы явныеAUTOSAR C++14 Rule A13-5-2
AUTOSAR C++ 14 правил A13-5-5Операторы сравнения должны быть функциями лица, не являющегося членом какой-либо организации, с идентичными типами параметра и noexceptAUTOSAR C++14 Rule A13-5-5
AUTOSAR C++ 14 правил A13-6-1Диафрагмы последовательностей цифры 'должны только использоваться можно следующим образом: (1) для десятичного числа, каждых 3 цифр, (2) для шестнадцатеричного, каждых 2 цифр, (3) для двоичного файла, каждых 4 цифрAUTOSAR C++14 Rule A13-6-1
AUTOSAR C++ 14 правил A14-5-1Конструктор шаблона не должен участвовать в разрешении перегрузки для отдельного аргумента типа класса включенияAUTOSAR C++14 Rule A14-5-1
AUTOSAR C++ 14 правил A14-7-1Тип, используемый в качестве аргумента шаблона, должен предоставить всем членам, которые используются шаблономAUTOSAR C++14 Rule A14-7-1
AUTOSAR C++ 14 правил A14-7-2Обработайте специализацию по шаблону, буду объявлен в том же файле (1) как первичный шаблон (2) как пользовательский тип, для которого объявляется специализацияAUTOSAR C++14 Rule A14-7-2
AUTOSAR C++ 14 правил A14-8-2Явные специализации шаблонов функций не должны использоватьсяAUTOSAR C++14 Rule A14-8-2
AUTOSAR C++ 14 правил A15-1-2Объект исключения не должен быть указателемAUTOSAR C++14 Rule A15-1-2
AUTOSAR C++ 14 правил A15-1-4Если функция выйдет за исключением, то перед броском, функция должна поместить все объекты/ресурсы, которые функция создала в допустимых состояниях, или это должно удалить их.AUTOSAR C++14 Rule A15-1-4
AUTOSAR C++ 14 правил A15-2-1Конструкторы, которые не являются noexcept, не должны быть вызваны перед запуском программыAUTOSAR C++14 Rule A15-2-1
AUTOSAR C++ 14 правил A15-2-2Если конструктор не будет noexcept, и конструктор не может закончить объектную инициализацию, то это должно освободить ресурсы объекта, и это должно выдать исключениеAUTOSAR C++14 Rule A15-2-2
AUTOSAR C++ 14 правил A15-3-3Основная функция и задача основная функция должны отловить, по крайней мере: исключения базового класса из всех сторонних библиотек использовали, станд.:: исключение и все в противном случае необработанные исключенияAUTOSAR C++14 Rule A15-3-3
AUTOSAR C++ 14 правил A15-3-4Вместилище (замещающий знак и станд.:: исключение), обработчики должны использоваться только в (a) основном, (b) задаче основные функции, (c) в функциях, которые, как предполагается, изолируют независимые компоненты и (d) при вызове стороннего кода, который использует исключения не согласно C++ AUTOSAR 14 инструкцийAUTOSAR C++14 Rule A15-3-4
AUTOSAR C++ 14 правил A15-3-5Исключение типа класса должно быть отловлено ссылкой const или ссылкойAUTOSAR C++14 Rule A15-3-5
AUTOSAR C++ 14 правил A15-4-1Динамическая спецификация исключения не должна использоватьсяAUTOSAR C++14 Rule A15-4-1
AUTOSAR C++ 14 правил A15-4-2Если функция, как будут объявлять, будет noexcept, noexcept (TRUE) или noexcept (<истинное условие>), то это не должно выходить за исключениемAUTOSAR C++14 Rule A15-4-2
AUTOSAR C++ 14 правил A15-4-3noexcept спецификация функции должна или быть идентичной через все модули перевода, или идентичной или более строгой между виртуальной функцией членства и сверхнаездникомAUTOSAR C++14 Rule A15-4-3
AUTOSAR C++ 14 правил A15-4-4Объявление неброска функции должно содержать noexcept спецификациюAUTOSAR C++14 Rule A15-4-4
AUTOSAR C++ 14 правил A15-4-5Контролируемые исключительные ситуации, которые могли быть выданы от функции, должны быть заданы вместе с объявлением функции, и они должны быть идентичными во всех объявлениях функции и для всех его сверхнаездниковAUTOSAR C++14 Rule A15-4-5
AUTOSAR C++ 14 правил A15-5-1Все обеспеченные пользователями деструкторы класса, функции освобождения, перемещают конструкторов, перемещают операторы присваивания и подкачивают функции, не выйду за исключением. noexcept спецификация исключения должна быть добавлена к этим функциям как соответствующаяAUTOSAR C++14 Rule A15-5-1
AUTOSAR C++ 14 правил A15-5-2Программа не должна быть резко отключена. В частности, неявный или явный вызов станд.:: аварийное прекращение работы (), станд.:: quick_exit (), станд.:: _Exit (), станд.:: оконечный () не буду сделанAUTOSAR C++14 Rule A15-5-2
AUTOSAR C++ 14 правил A15-5-3Станд.:: оконечный () функция не должна быть вызвана неявноAUTOSAR C++14 Rule A15-5-3
AUTOSAR C++ 14 правил A16-0-1Препроцессор должен только использоваться для безусловного и условного включения файла и включать защиту и использовать определенные директивыAUTOSAR C++14 Rule A16-0-1
AUTOSAR C++ 14 правил A16-2-1', ", /*,//, \символы не должны происходить на имя заголовочного файла или на #include директивуAUTOSAR C++14 Rule A16-2-1
AUTOSAR C++ 14 правил A16-6-1Директива #error не должна использоватьсяAUTOSAR C++14 Rule A16-6-1
AUTOSAR C++ 14 правил A16-7-1#pragma директива не должна использоватьсяAUTOSAR C++14 Rule A16-7-1
AUTOSAR C++ 14 правил A17-0-1Зарезервированные идентификаторы, макросы и функции в библиотеке стандарта C++ не должны быть заданы, переопределены или не определеныAUTOSAR C++14 Rule A17-0-1
AUTOSAR C++ 14 правил A17-6-1Нестандартные сущности не должны быть добавлены к стандартным пространствам именAUTOSAR C++14 Rule A17-6-1
AUTOSAR C++ 14 правил A18-0-1К средствам библиотеки C нужно только получить доступ через заголовки библиотеки C++AUTOSAR C++14 Rule A18-0-1
AUTOSAR C++ 14 правил A18-0-2Состояние ошибки преобразования от строки до числового значения должно проверятьсяAUTOSAR C++14 Rule A18-0-2
AUTOSAR C++ 14 правил A18-0-3Библиотекой <clocale> (locale.h) и функция setlocale нельзя пользоватьсяAUTOSAR C++14 Rule A18-0-3
AUTOSAR C++ 14 правил A18-1-1Массивы C-стиля не должны использоватьсяAUTOSAR C++14 Rule A18-1-1
AUTOSAR C++ 14 правил A18-1-2Станд.:: вектор <bool> специализация не должен использоватьсяAUTOSAR C++14 Rule A18-1-2
AUTOSAR C++ 14 правил A18-1-3Станд.:: auto_ptr не должен использоватьсяAUTOSAR C++14 Rule A18-1-3
AUTOSAR C++ 14 правил A18-1-6Весь станд.:: специализации хеша для пользовательских типов должны иметь noexcept оператор вызова функцииAUTOSAR C++14 Rule A18-1-6
AUTOSAR C++ 14 правил A18-5-1Функции malloc, calloc, перевыделение и свободный не должны использоватьсяAUTOSAR C++14 Rule A18-5-1
AUTOSAR C++ 14 правил A18-5-10Новое размещение должно использоваться только с правильно выровненными указателями на достаточную емкость памятиAUTOSAR C++14 Rule A18-5-10
AUTOSAR C++ 14 правил A18-5-11"оператор, который удаляет новый" и "оператор", должен быть задан вместеAUTOSAR C++14 Rule A18-5-11
AUTOSAR C++ 14 правил A18-5-2Новое неразмещение или удаляет выражения, не буду использоватьсяAUTOSAR C++14 Rule A18-5-2
AUTOSAR C++ 14 правил A18-5-3Форма оператора delete должна соответствовать, форма нового оператора раньше выделяла памятьAUTOSAR C++14 Rule A18-5-3
AUTOSAR C++ 14 правил A18-5-4Если проект измерил, или неразмерная версия оператора 'удаляют' глобально заданный, то и измеренные и неразмерные версии должны быть заданыAUTOSAR C++14 Rule A18-5-4
AUTOSAR C++ 14 правил A18-5-5Функции управления памятью должны гарантировать следующее: (a) детерминированное поведение, заканчивающееся с существованием времени выполнения худшего случая, (b) предотвращение фрагментации памяти, (c) постарайтесь не заканчиваться память, (d) предотвращение несовпадающих выделений или освобождения, (e) никакая зависимость от недетерминированных вызовов ядраAUTOSAR C++14 Rule A18-5-5
AUTOSAR C++ 14 правил A18-5-8Объекты, которые не переживают функцию, должны иметь длительность автоматического храненияAUTOSAR C++14 Rule A18-5-8
AUTOSAR C++ 14 правил A18-5-9Пользовательские реализации функций динамического выделения памяти и освобождения должны удовлетворить семантические требования, заданные в соответствующем "Необходимом поведении" пункт из Стандарта C++AUTOSAR C++14 Rule A18-5-9
AUTOSAR C++ 14 правил A18-9-1Станд.:: свяжите не буду использоватьсяAUTOSAR C++14 Rule A18-9-1
AUTOSAR C++ 14 правил A18-9-2Передача значений к другим функциям должна быть сделана через: (1) станд.:: переместитесь, если значение является rvalue ссылкой, (2) станд::, если значение передает ссылкуAUTOSAR C++14 Rule A18-9-2
AUTOSAR C++ 14 правил A18-9-3Станд.:: перемещение не должно использоваться на объектах, объявил const или const&AUTOSAR C++14 Rule A18-9-3
AUTOSAR C++ 14 правил A18-9-4Аргумент к станд.:: вперед не буду впоследствии использоватьсяAUTOSAR C++14 Rule A18-9-4
AUTOSAR C++ 14 правил A2-10-1Идентификатор, объявленный во внутреннем осциллографе, не должен скрывать идентификатор, объявленный во внешнем осциллографеAUTOSAR C++14 Rule A2-10-1
AUTOSAR C++ 14 правил A2-10-4Имя идентификатора объекта лица, не являющегося членом какой-либо организации, со статической продолжительностью хранения или статической функцией не должно быть снова использовано в пространстве именAUTOSAR C++14 Rule A2-10-4
AUTOSAR C++ 14 правил A2-10-6Класс или имя перечисления не должны быть скрыты переменной, функцией или объявлением перечислителя в том же осциллографеAUTOSAR C++14 Rule A2-10-6
AUTOSAR C++ 14 правил A2-11-1Энергозависимое ключевое слово не должно использоватьсяAUTOSAR C++14 Rule A2-11-1
AUTOSAR C++ 14 правил A2-13-1Только те escape-последовательности, которые заданы в ISO/IEC 14882:2014, должны использоватьсяAUTOSAR C++14 Rule A2-13-1
AUTOSAR C++ 14 правил A2-13-2Строковые литералы с различными префиксами кодирования не должны быть конкатенированыAUTOSAR C++14 Rule A2-13-2
AUTOSAR C++ 14 правил A2-13-3wchar_t типа не должен использоватьсяAUTOSAR C++14 Rule A2-13-3
AUTOSAR C++ 14 правил A2-13-4Строковые литералы не должны быть присвоены непостоянным указателямAUTOSAR C++14 Rule A2-13-4
AUTOSAR C++ 14 правил A2-13-6Универсальные имена персонажей должны использоваться только в символьных или строковых литералахAUTOSAR C++14 Rule A2-13-6
AUTOSAR C++ 14 правил A2-3-1Только те символы, заданные в базовом наборе символов исходного кода Стандарта Языка C++, должны использоваться в исходном кодеAUTOSAR C++14 Rule A2-3-1
AUTOSAR C++ 14 правил A2-5-1Trigraphs не должен использоватьсяAUTOSAR C++14 Rule A2-5-1
AUTOSAR C++ 14 правил A2-5-2Диграфы не должны использоватьсяAUTOSAR C++14 Rule A2-5-2
AUTOSAR C++ 14 правил A2-7-1Символ \не должен происходить, как комментирует последний знак C++AUTOSAR C++14 Rule A2-7-1
AUTOSAR C++ 14 правил A2-7-2Разделы кода не должны быть то, " закомментировал"AUTOSAR C++14 Rule A2-7-2
AUTOSAR C++ 14 правил A2-7-3Всем объявлениям "пользовательских" типов, статических и нестатических элементов данных, функций и методов должна предшествовать документацияAUTOSAR C++14 Rule A2-7-3
AUTOSAR C++ 14 правил A2-8-1Имя заголовочного файла должно отразить логическую сущность, для которой оно обеспечивает объявления.AUTOSAR C++14 Rule A2-8-1
AUTOSAR C++ 14 правил A20-8-1Уже принадлежавшее значение указателя не должно храниться в несвязанном интеллектуальном указателеAUTOSAR C++14 Rule A20-8-1
AUTOSAR C++ 14 правил A20-8-2Станд.:: unique_ptr должен использоваться, чтобы представлять исключительное владениеAUTOSAR C++14 Rule A20-8-2
AUTOSAR C++ 14 правил A20-8-3Станд.:: shared_ptr должен использоваться, чтобы представлять совместно использованное владениеAUTOSAR C++14 Rule A20-8-3
AUTOSAR C++ 14 правил A20-8-5станд:: должен использоваться, чтобы создать объекты, принадлежавшие станд.:: unique_ptrAUTOSAR C++14 Rule A20-8-5
AUTOSAR C++ 14 правил A20-8-6станд:: должен использоваться, чтобы создать объекты, принадлежавшие станд.:: shared_ptrAUTOSAR C++14 Rule A20-8-6
AUTOSAR C++ 14 правил A21-8-1Аргументы к обрабатывающим символ функциям должны быть представимыми как char без знакаAUTOSAR C++14 Rule A21-8-1
AUTOSAR C++ 14 правил A23-0-1Итератор не должен быть неявно преобразован в const_iteratorAUTOSAR C++14 Rule A23-0-1
AUTOSAR C++ 14 правил A26-5-1Псевдослучайные числа не должны быть сгенерированы с помощью станд.:: randAUTOSAR C++14 Rule A26-5-1
AUTOSAR C++ 14 правил A26-5-2Механизмы случайных чисел не должны быть инициализированы значением по умолчаниюAUTOSAR C++14 Rule A26-5-2
AUTOSAR C++ 14 правил A27-0-1Входные параметры от независимых компонентов должны быть подтверждены.AUTOSAR C++14 Rule A27-0-1
AUTOSAR C++ 14 правил A27-0-3Альтернативные операции ввода и вывода на потоке файла не должны использоваться без прошедшего сброса или располагающий вызовAUTOSAR C++14 Rule A27-0-3
AUTOSAR C++ 14 правил A27-0-4Строки C-стиля не должны использоватьсяAUTOSAR C++14 Rule A27-0-4
AUTOSAR C++ 14 правил A3-1-1Должно быть возможно включать любой заголовочный файл в несколько модулей перевода, не нарушая Одно Правило ОпределенияAUTOSAR C++14 Rule A3-1-1
AUTOSAR C++ 14 правил A3-1-2Заголовочные файлы, которые заданы локально в проекте, должны иметь расширение файла одного из: .h, .hpp или .hxxAUTOSAR C++14 Rule A3-1-2
AUTOSAR C++ 14 правил A3-1-4Когда массив с внешним рычажным устройством будет объявлен, его размер должен быть утвержден явным образомAUTOSAR C++14 Rule A3-1-4
AUTOSAR C++ 14 правил A3-1-5Функциональное определение должно только быть помещено в определение класса, если (1) функция будет предназначена, чтобы быть встроенной (2), это - шаблон функции членства (3), это - функция членства шаблона классаAUTOSAR C++14 Rule A3-1-5
AUTOSAR C++ 14 правил A3-3-1Объекты или функции с внешним рычажным устройством (включая члены именованных пространств имен) должны быть объявлены в заголовочном файлеAUTOSAR C++14 Rule A3-3-1
AUTOSAR C++ 14 правил A3-3-2Статические и локальные объекты потока должны быть постоянно инициализированыAUTOSAR C++14 Rule A3-3-2
AUTOSAR C++ 14 правил A3-8-1К объекту нельзя получить доступ за пределами его времени жизниAUTOSAR C++14 Rule A3-8-1
AUTOSAR C++ 14 правил A3-9-1Фиксированные целочисленные типы ширины от <cstdint>, указывая на размер и со знаком, должны использоваться вместо основных числовых типовAUTOSAR C++14 Rule A3-9-1
AUTOSAR C++ 14 правил A4-10-1Только литерал nullptr должен использоваться в качестве ограничения нулевого указателяAUTOSAR C++14 Rule A4-10-1
AUTOSAR C++ 14 правил A4-5-1Выражения с классом Enum типа или классом Enum не должны использоваться в качестве операндов к встроенным и перегруженным операторам кроме оператора индекса [], оператор присваивания =, операторы равенства == и! =, унарное & оператор и операторы отношения <<=>,> =AUTOSAR C++14 Rule A4-5-1
AUTOSAR C++ 14 правил A4-7-1Целое выражение не должно приводить к потере данныхAUTOSAR C++14 Rule A4-7-1
AUTOSAR C++ 14 правил A5-0-1Значение выражения должно быть тем же самым согласно любому порядку оценки, которую разрешает стандартAUTOSAR C++14 Rule A5-0-1
AUTOSAR C++ 14 правил A5-0-2Условие оператора "if" и условие оператора цикла должны иметь тип boolAUTOSAR C++14 Rule A5-0-2
AUTOSAR C++ 14 правил A5-0-3Объявление объектов должно содержать не больше, чем два уровня косвенности указателяAUTOSAR C++14 Rule A5-0-3
AUTOSAR C++ 14 правил A5-0-4Адресная арифметика с указателями не должна использоваться с указателями на неитоговые классыAUTOSAR C++14 Rule A5-0-4
AUTOSAR C++ 14 правил A5-1-1Литеральные значения не должны использоваться кроме инициализации типа, в противном случае символьные имена должны использоваться вместо этогоAUTOSAR C++14 Rule A5-1-1
AUTOSAR C++ 14 правил A5-1-2Переменные не должны быть неявно получены в лямбда-выраженииAUTOSAR C++14 Rule A5-1-2
AUTOSAR C++ 14 правил A5-1-3Список параметров (возможно пустой) должен быть включен в каждое лямбда-выражениеAUTOSAR C++14 Rule A5-1-3
AUTOSAR C++ 14 правил A5-1-4Объект лямбда-выражения не должен переживать ни один из своих полученных ссылкой объектовAUTOSAR C++14 Rule A5-1-4
AUTOSAR C++ 14 правил A5-1-7Lambda не должен быть операндом к decltype или идентификатору типаAUTOSAR C++14 Rule A5-1-7
AUTOSAR C++ 14 правил A5-10-1Указатель на виртуальную функцию члена должен только быть протестирован на равенство с постоянным нулевым указателемAUTOSAR C++14 Rule A5-10-1
AUTOSAR C++ 14 правил A5-16-1Троичный условный оператор не должен использоваться в качестве подвыраженияAUTOSAR C++14 Rule A5-16-1
AUTOSAR C++ 14 правил A5-2-2Традиционные броски C-стиля не должны использоватьсяAUTOSAR C++14 Rule A5-2-2
AUTOSAR C++ 14 правил A5-2-3Бросок не должен удалять const или энергозависимую проверку от типа указателя или ссылкиAUTOSAR C++14 Rule A5-2-3
AUTOSAR C++ 14 правил A5-2-4reinterpret_cast не должен использоватьсяAUTOSAR C++14 Rule A5-2-4
AUTOSAR C++ 14 правил A5-2-6Операнды логического && или || буду заключен в скобки, если операнды будут содержать бинарных операторовAUTOSAR C++14 Rule A5-2-6
AUTOSAR C++ 14 правил A5-3-1Оценка операнда к оператору идентификатора типа не должна содержать побочные эффектыAUTOSAR C++14 Rule A5-3-1
AUTOSAR C++ 14 правил A5-3-2Нулевые указатели не должны быть разыменованыAUTOSAR C++14 Rule A5-3-2
AUTOSAR C++ 14 правил A5-3-3Указатели на неполные типы классов не должны быть удаленыAUTOSAR C++14 Rule A5-3-3
AUTOSAR C++ 14 правил A5-6-1Правый операнд целочисленного деления или операторов остатка не должен быть равным нулюAUTOSAR C++14 Rule A5-6-1
AUTOSAR C++ 14 правил A6-2-1Переместите и скопируйте операторы присваивания, или перемещу или соответственно скопирую базовые классы и элементы данных класса, без любых побочных эффектовAUTOSAR C++14 Rule A6-2-1
AUTOSAR C++ 14 правил A6-2-2Операторы выражения не должны быть явными вызовами конструкторов временных объектов толькоAUTOSAR C++14 Rule A6-2-2
AUTOSAR C++ 14 правил A6-4-1Оператор switch должен иметь по крайней мере два пункта случая, отличные от метки по умолчаниюAUTOSAR C++14 Rule A6-4-1
AUTOSAR C++ 14 правил A6-5-2Цикл for должен содержать один счетчик цикла, который не должен иметь типа с плавающей точкойAUTOSAR C++14 Rule A6-5-2
AUTOSAR C++ 14 правил A6-6-1Оператор перехода не должен использоватьсяAUTOSAR C++14 Rule A6-6-1
AUTOSAR C++ 14 правил A7-1-1Constexpr или спецификаторы const должны использоваться для неизменяемого объявления данныхAUTOSAR C++14 Rule A7-1-1
AUTOSAR C++ 14 правил A7-1-2constexpr спецификатор должен использоваться для значений, которые могут быть определены во время компиляцииAUTOSAR C++14 Rule A7-1-2
AUTOSAR C++ 14 правил A7-1-3Спецификаторы CV должны быть помещены на правой стороне типа, который является определением типа или именем использованияAUTOSAR C++14 Rule A7-1-3
AUTOSAR C++ 14 правил A7-1-4Ключевое слово регистра не должно использоватьсяAUTOSAR C++14 Rule A7-1-4
AUTOSAR C++ 14 правил A7-1-5Автоматический спецификатор не должен использоваться кроме следующих случаев: (1) чтобы объявить, что переменная имеет тот же тип, как возвращают тип вызова функции, (2) чтобы объявить, что переменная имеет тот же тип как инициализатор нефундаментального типа, (3) объявлять параметры типового лямбда-выражения, (4) чтобы объявить использование шаблона функции, запаздывающее, возвращают синтаксис типаAUTOSAR C++14 Rule A7-1-5
AUTOSAR C++ 14 правил A7-1-6Спецификатор определения типа не должен использоватьсяAUTOSAR C++14 Rule A7-1-6
AUTOSAR C++ 14 правил A7-1-7Каждый оператор выражения и описание идентификатора должны быть помещены в отдельную линиюAUTOSAR C++14 Rule A7-1-7
AUTOSAR C++ 14 правил A7-1-8Спецификатор нетипа должен быть помещен перед спецификатором типа в объявленииAUTOSAR C++14 Rule A7-1-8
AUTOSAR C++ 14 правил A7-1-9Класс, структура или перечисление не должны быть объявлены в определении его типаAUTOSAR C++14 Rule A7-1-9
AUTOSAR C++ 14 правил A7-2-2Тип лежания в основе перечисления должен быть явным образом заданAUTOSAR C++14 Rule A7-2-2
AUTOSAR C++ 14 правил A7-2-3Перечисления должны быть объявлены как ограниченные по объему классы EnumAUTOSAR C++14 Rule A7-2-3
AUTOSAR C++ 14 правил A7-2-4В перечислении, любой (1) ни один, (2) первое или (3) весь перечислители должны быть инициализированыAUTOSAR C++14 Rule A7-2-4
AUTOSAR C++ 14 правил A7-3-1Все перегрузки функции должны отобразиться от того, где она называетсяAUTOSAR C++14 Rule A7-3-1
AUTOSAR C++ 14 правил A7-4-1asm объявление не должно использоватьсяAUTOSAR C++14 Rule A7-4-1
AUTOSAR C++ 14 правил A7-5-1Функция не должна возвращать ссылку или указатель на параметр, который передается в отношении constAUTOSAR C++14 Rule A7-5-1
AUTOSAR C++ 14 правил A7-5-2Функции не должны вызывать себя, ни один прямо или косвенноAUTOSAR C++14 Rule A7-5-2
AUTOSAR C++ 14 правил A7-6-1Функции, объявленные с [[noreturn]] атрибут, не должны возвращатьсяAUTOSAR C++14 Rule A7-6-1
AUTOSAR C++ 14 правил A8-2-1При объявлении шаблонов функций возвращается запаздывание, синтаксис типа должен использоваться, если тип возврата будет зависеть от типа параметровAUTOSAR C++14 Rule A8-2-1
AUTOSAR C++ 14 правил A8-4-1Функции не должны быть заданы с помощью обозначения замещающего знакаAUTOSAR C++14 Rule A8-4-1
AUTOSAR C++ 14 правил A8-4-10Параметр должен быть передан ссылкой, если это не может быть NULLAUTOSAR C++14 Rule A8-4-10
AUTOSAR C++ 14 правил A8-4-14Интерфейсы должны быть точно и со строгим контролем типовAUTOSAR C++14 Rule A8-4-14
AUTOSAR C++ 14 правил A8-4-2Все выходные пути от функции с непустым типом возврата должны иметь явный оператор возврата с выражениемAUTOSAR C++14 Rule A8-4-2
AUTOSAR C++ 14 правил A8-4-5"используйте" параметры, объявленные, когда X && должны всегда перемещаться отAUTOSAR C++14 Rule A8-4-5
AUTOSAR C++ 14 правил A8-4-6"передайте" параметры, объявленные, как T && должен всегда передаватьсяAUTOSAR C++14 Rule A8-4-6
AUTOSAR C++ 14 правил A8-4-7"в" параметрах для "дешевого, чтобы скопировать" типы буду передан значениемAUTOSAR C++14 Rule A8-4-7
AUTOSAR C++ 14 правил A8-4-8Выходные параметры не должны использоватьсяAUTOSAR C++14 Rule A8-4-8
AUTOSAR C++ 14 правил A8-4-9"в -" параметры, объявленные как T &, буду измененAUTOSAR C++14 Rule A8-4-9
AUTOSAR C++ 14 правил A8-5-0Вся память должна быть инициализирована, прежде чем она будет считанаAUTOSAR C++14 Rule A8-5-0
AUTOSAR C++ 14 правил A8-5-1В списке инициализаций порядок инициализации должен следовать: (1) за виртуальными базовыми классами подробно и оставленный правильному порядку графика наследования, (2) за прямыми базовыми классами в левом к правильному порядку списка наследований, (3) за нестатическими элементами данных в порядке, которым они были объявлены в определении классаAUTOSAR C++14 Rule A8-5-1
AUTOSAR C++ 14 правил A8-5-2Закрепленная инициализация {}, без равняется знаку, буду использоваться для переменной инициализацииAUTOSAR C++14 Rule A8-5-2
AUTOSAR C++ 14 правил A8-5-3Переменная автоматического типа не должна быть инициализирована с помощью {} или = {} закрепленная инициализацияAUTOSAR C++14 Rule A8-5-3
AUTOSAR C++ 14 правил A9-3-1Функции членства не должны возвращать непостоянные "необработанные" указатели или ссылки на частные или защищенные данные, принадлежавшие классуAUTOSAR C++14 Rule A9-3-1
AUTOSAR C++ 14 правил A9-5-1Объединения не должны использоватьсяAUTOSAR C++14 Rule A9-5-1
AUTOSAR C++ 14 правил A9-6-1Типы данных, используемые для взаимодействия через интерфейс с оборудованием или приспосабливания протоколам связи, должны быть тривиальными, стандартное размещение и только содержать члены типов с заданными размерамиAUTOSAR C++14 Rule A9-6-1
AUTOSAR C++ 14 правил M0-1-1Проект не должен содержать недостижимый кодAUTOSAR C++14 Rule M0-1-1
AUTOSAR C++ 14 правил M0-1-2Проект не должен содержать неосуществимые путиAUTOSAR C++14 Rule M0-1-2
AUTOSAR C++ 14 правил M0-1-3Проект не должен содержать неиспользуемые переменныеAUTOSAR C++14 Rule M0-1-3
AUTOSAR C++ 14 правил M0-1-4Проект не должен содержать энергонезависимые переменные POD, имеющие только одно использованиеAUTOSAR C++14 Rule M0-1-4
AUTOSAR C++ 14 правил M0-1-9Не должно быть никакого мертвого кодаAUTOSAR C++14 Rule M0-1-9
AUTOSAR C++ 14 правил M0-2-1Объект не должен быть присвоен перекрывающемуся объектуAUTOSAR C++14 Rule M0-2-1
AUTOSAR C++ 14 правил M0-3-2Если функция сгенерирует информацию об ошибке, то та информация об ошибке должна быть протестированаAUTOSAR C++14 Rule M0-3-2
AUTOSAR C++ 14 правил M10-1-2Базовый класс должен только быть объявлен виртуальный, если он будет использоваться в ромбовидной иерархииAUTOSAR C++14 Rule M10-1-2
AUTOSAR C++ 14 правил M10-1-3Доступный базовый класс не должен быть и виртуальным и невиртуальным в той же иерархииAUTOSAR C++14 Rule M10-1-3
AUTOSAR C++ 14 правил M10-3-3Виртуальная функция должна только быть заменена чистой виртуальной функцией, если она будет самостоятельно объявлена как чистая виртуальнаяAUTOSAR C++14 Rule M10-3-3
AUTOSAR C++ 14 правил M11-0-1Данные члена в типах классов не-POD должны быть частнымиAUTOSAR C++14 Rule M11-0-1
AUTOSAR C++ 14 правил M12-1-1Динамический тип объекта не должен использоваться от тела его конструктора или деструктораAUTOSAR C++14 Rule M12-1-1
AUTOSAR C++ 14 правил M14-5-3Оператор присваивания копии должен быть объявлен, когда будет оператор присваивания шаблона параметром, который является типовым параметромAUTOSAR C++14 Rule M14-5-3
AUTOSAR C++ 14 правил M14-6-1В шаблоне класса с зависимой основой любое имя, которое может быть найдено в той зависимой основе, должно быть отнесено в использование квалифицированного ID или этого->AUTOSAR C++14 Rule M14-6-1
AUTOSAR C++ 14 правил M15-0-3Управление не должно быть передано в попытку или блок выгоды с помощью goto или оператора switchAUTOSAR C++14 Rule M15-0-3
AUTOSAR C++ 14 правил M15-1-1Выражение присваивания оператора броска не должно самостоятельно заставлять исключение быть выданнымAUTOSAR C++14 Rule M15-1-1
AUTOSAR C++ 14 правил M15-1-2NULL не должен быть выдан явным образомAUTOSAR C++14 Rule M15-1-2
AUTOSAR C++ 14 правил M15-1-3Пустой бросок (бросок;) буду только использоваться в составном операторе обработчика выгодыAUTOSAR C++14 Rule M15-1-3
AUTOSAR C++ 14 правил M15-3-1Исключения должны быть повышены только после запуска и перед завершениемAUTOSAR C++14 Rule M15-3-1
AUTOSAR C++ 14 правил M15-3-3Обработчики реализации функционального блока попытки конструктора класса или деструктора не должны ссылаться на нестатические члены от этого класса или его основAUTOSAR C++14 Rule M15-3-3
AUTOSAR C++ 14 правил M15-3-4Каждое исключение, явным образом добавленное, код должен иметь обработчик совместимого типа во всех путях к вызову, которые могли привести к той точкеAUTOSAR C++14 Rule M15-3-4
AUTOSAR C++ 14 правил M15-3-6Где несколько обработчиков обеспечиваются в одном операторе try-catch или функциональном блоке попытки для производного класса, и некоторые или все его основы, обработчики должны быть упорядочены наиболее выведенные базовому классуAUTOSAR C++14 Rule M15-3-6
AUTOSAR C++ 14 правил M15-3-7Где несколько обработчиков обеспечиваются в одном операторе try-catch или функциональном блоке попытки, любой замещающий знак (вместилище), обработчик должен произойти в последний разAUTOSAR C++14 Rule M15-3-7
AUTOSAR C++ 14 правил M16-0-1Директивам #include в файле должны только предшествовать другие директивы препроцессору или комментарииAUTOSAR C++14 Rule M16-0-1
AUTOSAR C++ 14 правил M16-0-2Макросы должны только быть #define'd или #undef'd в глобальном пространстве именAUTOSAR C++14 Rule M16-0-2
AUTOSAR C++ 14 правил M16-0-5Аргументы к подобному функции макросу не должны содержать лексемы, которые похожи на предварительную обработку директивAUTOSAR C++14 Rule M16-0-5
AUTOSAR C++ 14 правил M16-0-6В определении подобного функции макроса каждый экземпляр параметра должен быть заключен в круглые скобки, если это не будет использоваться в качестве операнда # или ##AUTOSAR C++14 Rule M16-0-6
AUTOSAR C++ 14 правил M16-0-7Неопределенные макро-идентификаторы не должны использоваться в #if или #elif директивах препроцессору, за исключением операндов к заданному операторуAUTOSAR C++14 Rule M16-0-7
AUTOSAR C++ 14 правил M16-0-8Если # лексема появится как первая лексема на линии, то это должно сразу сопровождаться лексемой предварительной обработкиAUTOSAR C++14 Rule M16-0-8
AUTOSAR C++ 14 правил M16-1-1Заданный оператор препроцессора должен только использоваться в одной из двух стандартных формAUTOSAR C++14 Rule M16-1-1
AUTOSAR C++ 14 правил M16-1-2Весь #else, #elif и #endif директивы препроцессору должен находиться в том же файле как #if или #ifdef директива, с которой они связаныAUTOSAR C++14 Rule M16-1-2
AUTOSAR C++ 14 правил M16-2-3Включайте защиту, буду обеспеченAUTOSAR C++14 Rule M16-2-3
AUTOSAR C++ 14 правил M16-3-1Должно быть самое большее одно вхождение # или ## операторов в одном макроопределенииAUTOSAR C++14 Rule M16-3-1
AUTOSAR C++ 14 правил M17-0-2Имена стандартных макросов библиотеки и объектов не должны быть снова использованыAUTOSAR C++14 Rule M17-0-2
AUTOSAR C++ 14 правил M17-0-3Имена стандартных библиотечных функций не должны быть замененыAUTOSAR C++14 Rule M17-0-3
AUTOSAR C++ 14 правил M17-0-5setjmp макрос и функция longjmp не должны использоватьсяAUTOSAR C++14 Rule M17-0-5
AUTOSAR C++ 14 правил M18-0-3Аварийное прекращение работы библиотечных функций, выход, getenv и система от библиотеки <cstdlib> не должны использоватьсяAUTOSAR C++14 Rule M18-0-3
AUTOSAR C++ 14 правил M18-0-4Функции обработки времени библиотеки <ctime> не должны использоватьсяAUTOSAR C++14 Rule M18-0-4
AUTOSAR C++ 14 правил M18-0-5Неограниченные функции библиотеки <cstring> не должны использоватьсяAUTOSAR C++14 Rule M18-0-5
AUTOSAR C++ 14 правил M18-2-1Макрос offsetof не должен использоватьсяAUTOSAR C++14 Rule M18-2-1
AUTOSAR C++ 14 правил M18-7-1Погрузочно-разгрузочное оборудование сигнала <csignal> не должно использоватьсяAUTOSAR C++14 Rule M18-7-1
AUTOSAR C++ 14 правил M19-3-1Ошибочный индикатор errno не должен использоватьсяAUTOSAR C++14 Rule M19-3-1
AUTOSAR C++ 14 правил M2-10-1Различные идентификаторы должны быть типографским способом однозначнымиAUTOSAR C++14 Rule M2-10-1
AUTOSAR C++ 14 правил M2-13-2Восьмеричные константы (кроме нуля) и восьмеричные escape-последовательности (кроме "\0") не должны использоватьсяAUTOSAR C++14 Rule M2-13-2
AUTOSAR C++ 14 правил M2-13-3Суффикс "U" должен быть применен ко всем восьмеричным или шестнадцатеричным целочисленным литералам типа без знакаAUTOSAR C++14 Rule M2-13-3
AUTOSAR C++ 14 правил M2-13-4Литеральные суффиксы должны быть верхним регистромAUTOSAR C++14 Rule M2-13-4
AUTOSAR C++ 14 правил M2-7-1Последовательность символов/* не должна использоваться в рамках комментария C-стиляAUTOSAR C++14 Rule M2-7-1
AUTOSAR C++ 14 правил M27-0-1Потоковый ввод / выходная библиотека <cstdio> не должен использоватьсяAUTOSAR C++14 Rule M27-0-1
AUTOSAR C++ 14 правил M3-1-2Функции не должны быть объявлены в области действия блокаAUTOSAR C++14 Rule M3-1-2
AUTOSAR C++ 14 правил M3-2-1Все объявления объекта или функции должны иметь совместимые типыAUTOSAR C++14 Rule M3-2-1
AUTOSAR C++ 14 правил M3-2-2Одно Правило Определения не должно быть нарушеноAUTOSAR C++14 Rule M3-2-2
AUTOSAR C++ 14 правил M3-2-3Тип, объект или функция, которая используется в нескольких модулях перевода, должны быть объявлены в одном и только одном файлеAUTOSAR C++14 Rule M3-2-3
AUTOSAR C++ 14 правил M3-2-4Идентификатор с внешним рычажным устройством должен иметь точно одно определениеAUTOSAR C++14 Rule M3-2-4
AUTOSAR C++ 14 правил M3-3-2Если функция будет иметь внутреннее рычажное устройство затем, то все переобъявления должны включать статический спецификатор класса памятиAUTOSAR C++14 Rule M3-3-2
AUTOSAR C++ 14 правил M3-4-1Идентификатор, который, как объявляют, был объектом или типом, должен быть задан в блоке, который минимизирует его видимостьAUTOSAR C++14 Rule M3-4-1
AUTOSAR C++ 14 правил M3-9-1Типы, используемые для объекта, функционального типа возврата или параметра функции, должны быть лексемой для лексемы, идентичной во всех объявлениях и переобъявленияхAUTOSAR C++14 Rule M3-9-1
AUTOSAR C++ 14 правил M3-9-3Базовые битные представления значений с плавающей точкой не должны использоватьсяAUTOSAR C++14 Rule M3-9-3
AUTOSAR C++ 14 правил M4-10-1NULL не должен использоваться в качестве целочисленного значенияAUTOSAR C++14 Rule M4-10-1
AUTOSAR C++ 14 правил M4-10-2Литеральный нуль (0) не должен использоваться в качестве постоянного нулевым указателемAUTOSAR C++14 Rule M4-10-2
AUTOSAR C++ 14 правил M4-5-1Выражения с типом bool не должны использоваться в качестве операндов к встроенным операторам кроме оператора присваивания =, логические операторы &&, ||!, операторы равенства == и! =, унарное & оператор и условный операторAUTOSAR C++14 Rule M4-5-1
AUTOSAR C++ 14 правил M4-5-3Выражения с типом (простой) char и wchar_t не должны использоваться в качестве операндов к встроенным операторам кроме оператора присваивания =, операторы равенства == и! =, и унарное & операторAUTOSAR C++14 Rule M4-5-3
AUTOSAR C++ 14 правил M5-0-10Если побитовые операторы ~and <<будут применены к операнду с базовым типом символьного или короткого целого без знака без знака, результат должен быть сразу брошен к базовому типу операндаAUTOSAR C++14 Rule M5-0-10
AUTOSAR C++ 14 правил M5-0-11Простой символьный тип должен только использоваться для устройства хранения данных и использования символьных значенийAUTOSAR C++14 Rule M5-0-11
AUTOSAR C++ 14 правил M5-0-12Символ со знаком и символьный тип без знака должны только использоваться для устройства хранения данных и использования числовых значенийAUTOSAR C++14 Rule M5-0-12
AUTOSAR C++ 14 правил M5-0-14Первый операнд условного оператора должен иметь тип boolAUTOSAR C++14 Rule M5-0-14
AUTOSAR C++ 14 правил M5-0-15Индексация массива должна быть единственной формой адресной арифметики с указателямиAUTOSAR C++14 Rule M5-0-15
AUTOSAR C++ 14 правил M5-0-16Операнд указателя и любой указатель, следующий из адресной арифметики с указателями с помощью того операнда, должны оба обратиться к элементам того же массиваAUTOSAR C++14 Rule M5-0-16
AUTOSAR C++ 14 правил M5-0-17Вычитание между указателями должно только быть применено к указателям, которые обращаются к элементам того же массиваAUTOSAR C++14 Rule M5-0-17
AUTOSAR C++ 14 правил M5-0-18>,> =, <<= не буду применен к объектам типа указателя, кроме того, где они указывают на тот же массивAUTOSAR C++14 Rule M5-0-18
AUTOSAR C++ 14 правил M5-0-20Непостоянные операнды к бинарному побитовому оператору должны иметь тот же базовый типAUTOSAR C++14 Rule M5-0-20
AUTOSAR C++ 14 правил M5-0-21Побитовые операторы должны только быть применены к операндам базового типа без знакаAUTOSAR C++14 Rule M5-0-21
AUTOSAR C++ 14 правил M5-0-3cvalue выражение не должно быть неявно преобразовано в различный базовый типAUTOSAR C++14 Rule M5-0-3
AUTOSAR C++ 14 правил M5-0-4Неявное интегральное преобразование не должно изменять со знаком из базового типаAUTOSAR C++14 Rule M5-0-4
AUTOSAR C++ 14 правил M5-0-5Не должно быть никаких неявных интегральных плаванием преобразованийAUTOSAR C++14 Rule M5-0-5
AUTOSAR C++ 14 правил M5-0-6Неявное интегральное или преобразование с плавающей точкой не должно уменьшать размер базового типаAUTOSAR C++14 Rule M5-0-6
AUTOSAR C++ 14 правил M5-0-7Не должно быть никаких явных интегральных плаванием преобразований cvalue выраженияAUTOSAR C++14 Rule M5-0-7
AUTOSAR C++ 14 правил M5-0-8Явное интегральное или преобразование с плавающей точкой не должно увеличивать размер базового типа cvalue выраженияAUTOSAR C++14 Rule M5-0-8
AUTOSAR C++ 14 правил M5-0-9Явное интегральное преобразование не должно изменять со знаком из базового типа cvalue выраженияAUTOSAR C++14 Rule M5-0-9
AUTOSAR C++ 14 правил M5-14-1Правый операнд логического &&, || операторы не должны содержать побочные эффектыAUTOSAR C++14 Rule M5-14-1
AUTOSAR C++ 14 правил M5-18-1Оператор запятой не должен использоватьсяAUTOSAR C++14 Rule M5-18-1
AUTOSAR C++ 14 правил M5-19-1Оценка постоянных выражений беззнаковых целых чисел не должна вести, чтобы повторитьсяAUTOSAR C++14 Rule M5-19-1
AUTOSAR C++ 14 правил M5-2-10Шаг (++) и декремент (-) операторы не должен быть смешан с другими операторами в выраженииAUTOSAR C++14 Rule M5-2-10
AUTOSAR C++ 14 правил M5-2-11Оператор запятой, && оператор и || оператор не должен быть перегруженAUTOSAR C++14 Rule M5-2-11
AUTOSAR C++ 14 правил M5-2-12Идентификатор с типом массива, переданным как аргумент функции, не должен затухать к указателюAUTOSAR C++14 Rule M5-2-12
AUTOSAR C++ 14 правил M5-2-2Указатель на виртуальный базовый класс должен только быть брошен к указателю на производный класс посредством dynamic_castAUTOSAR C++14 Rule M5-2-2
AUTOSAR C++ 14 правил M5-2-6Бросок не должен преобразовывать указатель на функцию ни к какому другому типу указателя, включая указатель на функциональный типAUTOSAR C++14 Rule M5-2-6
AUTOSAR C++ 14 правил M5-2-8Объект с целочисленным типом или указателем, чтобы освободить тип не должен быть преобразован в объект с типом указателяAUTOSAR C++14 Rule M5-2-8
AUTOSAR C++ 14 правил M5-2-9Бросок не должен преобразовывать тип указателя в целочисленный типAUTOSAR C++14 Rule M5-2-9
AUTOSAR C++ 14 правил M5-3-1Каждый операнд! оператор, логический && или логическое || операторы должны иметь тип boolAUTOSAR C++14 Rule M5-3-1
AUTOSAR C++ 14 правил M5-3-2Оператор унарный минус не должен быть применен к выражению, базовый тип которого без знакаAUTOSAR C++14 Rule M5-3-2
AUTOSAR C++ 14 правил M5-3-3Унарное & оператор не должны быть перегруженыAUTOSAR C++14 Rule M5-3-3
AUTOSAR C++ 14 правил M5-3-4Оценка операнда к sizeof оператору не должна содержать побочные эффектыAUTOSAR C++14 Rule M5-3-4
AUTOSAR C++ 14 правил M5-8-1Правый операнд оператора сдвига должен находиться между нулем и меньше, чем ширина в битах базового типа левого операндаAUTOSAR C++14 Rule M5-8-1
AUTOSAR C++ 14 правил M6-2-1Операторы присваивания не должны использоваться в подвыраженияхAUTOSAR C++14 Rule M6-2-1
AUTOSAR C++ 14 правил M6-2-2Выражения с плавающей точкой не должны быть прямо или косвенно протестированы на равенство или неравенствоAUTOSAR C++14 Rule M6-2-2
AUTOSAR C++ 14 правил M6-2-3Перед предварительной обработкой пустой оператор должен только произойти на линии отдельно; это может сопровождаться комментарием, при условии, что первый символ после пустого оператора является пробельным символомAUTOSAR C++14 Rule M6-2-3
AUTOSAR C++ 14 правил M6-3-1Оператор, формирующий тело переключателя, в то время как, делает..., в то время как или для оператора будет составной операторAUTOSAR C++14 Rule M6-3-1
AUTOSAR C++ 14 правил M6-4-1Если (условие) создают, буду сопровождаться составным оператором. Еще ключевое слово должно сопровождаться или составным оператором или другим оператором ifAUTOSAR C++14 Rule M6-4-1
AUTOSAR C++ 14 правил M6-4-2Все, если... еще, если построения должны быть отключены с выражением elseAUTOSAR C++14 Rule M6-4-2
AUTOSAR C++ 14 правил M6-4-3Оператор switch должен быть правильно построенным оператором switchAUTOSAR C++14 Rule M6-4-3
AUTOSAR C++ 14 правил M6-4-4Метка переключателя должна только использоваться, когда наиболее тесно заключающий составной оператор будет телом оператора switchAUTOSAR C++14 Rule M6-4-4
AUTOSAR C++ 14 правил M6-4-5Безусловный бросок или оператор завершения должны отключить каждый непустой пункт переключателяAUTOSAR C++14 Rule M6-4-5
AUTOSAR C++ 14 правил M6-4-6Итоговый пункт оператора switch должен быть пунктом по умолчаниюAUTOSAR C++14 Rule M6-4-6
AUTOSAR C++ 14 правил M6-4-7Условие оператора switch не должно иметь типа boolAUTOSAR C++14 Rule M6-4-7
AUTOSAR C++ 14 правил M6-5-2Если счетчик цикла не будет изменен - или ++, то в условии счетчик цикла должен только использоваться в качестве операнда к <=, <> или> =AUTOSAR C++14 Rule M6-5-2
AUTOSAR C++ 14 правил M6-5-3Счетчик цикла не должен быть изменен в условии или оператореAUTOSAR C++14 Rule M6-5-3
AUTOSAR C++ 14 правил M6-5-4Счетчик цикла должен быть изменен одним из: - ++, - =n, или + =n; где n остается постоянным на время циклаAUTOSAR C++14 Rule M6-5-4
AUTOSAR C++ 14 правил M6-5-5Контрольная переменная цикла кроме счетчика цикла не должна быть изменена в условии или выраженииAUTOSAR C++14 Rule M6-5-5
AUTOSAR C++ 14 правил M6-5-6Контрольная переменная цикла кроме счетчика цикла, который изменяется в операторе, должна иметь тип boolAUTOSAR C++14 Rule M6-5-6
AUTOSAR C++ 14 правил M6-6-1Любая метка, на которую ссылается оператор перехода, должна быть объявлена в том же блоке, или в блоке, заключающем оператор переходаAUTOSAR C++14 Rule M6-6-1
AUTOSAR C++ 14 правил M6-6-2Оператор перехода должен перейти к метке, объявленной позже в том же теле функцииAUTOSAR C++14 Rule M6-6-2
AUTOSAR C++ 14 правил M6-6-3Оператор continue должен только использоваться в правильно построенном цикле forAUTOSAR C++14 Rule M6-6-3
AUTOSAR C++ 14 правил M7-1-2Указатель или параметр ссылки в функции должны быть объявлены как указатель на const или ссылка на const, если соответствующий объект не будет измененAUTOSAR C++14 Rule M7-1-2
AUTOSAR C++ 14 правил M7-3-1Глобальное пространство имен должно только содержать основные, объявления пространства имен и экстерна "C" объявленияAUTOSAR C++14 Rule M7-3-1
AUTOSAR C++ 14 правил M7-3-2Основной идентификатор не должен использоваться для функции кроме глобального функционального основногоAUTOSAR C++14 Rule M7-3-2
AUTOSAR C++ 14 правил M7-3-3В заголовочных файлах не должно быть никаких пространств имен без имениAUTOSAR C++14 Rule M7-3-3
AUTOSAR C++ 14 правил M7-3-4Директивы Использования не должны использоватьсяAUTOSAR C++14 Rule M7-3-4
AUTOSAR C++ 14 правил M7-3-6Директивы Использования и объявления использования (исключая осциллограф класса или функциональные объявления использования осциллографа) не должны использоваться в заголовочных файлахAUTOSAR C++14 Rule M7-3-6
AUTOSAR C++ 14 правил M7-4-2Ассемблерные инструкции должны только быть введены с помощью asm объявленияAUTOSAR C++14 Rule M7-4-2
AUTOSAR C++ 14 правил M7-4-3Ассемблер должен инкапсулироваться и изолироватьсяAUTOSAR C++14 Rule M7-4-3
AUTOSAR C++ 14 правил M7-5-1Функция не должна возвращать ссылку или указатель на автоматическую переменную (включая параметры), заданный в функцииAUTOSAR C++14 Rule M7-5-1
AUTOSAR C++ 14 правил M7-5-2Адрес объекта с автоматическим хранением не должен быть присвоен другому объекту, который может сохраниться после того, как первый объект прекратил существованиеAUTOSAR C++14 Rule M7-5-2
AUTOSAR C++ 14 правил M8-0-1Init-declarator-list или список оператора объявления члена должны состоять из одного init-оператора-объявления или оператора объявления члена соответственноAUTOSAR C++14 Rule M8-0-1
AUTOSAR C++ 14 правил M8-3-1Параметры в переопределяющей виртуальной функции должны или использовать те же параметры по умолчанию в качестве функции, которую они заменяют или иначе не должны задавать параметры по умолчаниюAUTOSAR C++14 Rule M8-3-1
AUTOSAR C++ 14 правил M8-4-2Идентификаторы, используемые для параметров в переобъявлении функции, должны быть идентичны тем в объявленииAUTOSAR C++14 Rule M8-4-2
AUTOSAR C++ 14 правил M8-4-4Функциональный идентификатор должен или использоваться, чтобы вызвать функцию, или этим нужно предшествовать &AUTOSAR C++14 Rule M8-4-4
AUTOSAR C++ 14 правил M8-5-2Фигурные скобки должны использоваться, чтобы указать и совпадать со структурой в ненулевой инициализации массивов и структурамиAUTOSAR C++14 Rule M8-5-2
AUTOSAR C++ 14 правил M9-3-1Функции членства const не должны возвращать указатели неconst или ссылки на данные классаAUTOSAR C++14 Rule M9-3-1
AUTOSAR C++ 14 правил M9-3-3Если функция членства может быть сделана статической затем, это должно быть сделано статическим, в противном случае если это может быть сделано const затем, это должно быть сделано constAUTOSAR C++14 Rule M9-3-3
AUTOSAR C++ 14 правил M9-6-4Названные битовые поля с типом целого числа со знаком должны иметь длину больше чем одного битаAUTOSAR C++14 Rule M9-6-4

Неподдерживаемые правила

Polyspace не поддерживает эти Необходимые правила:

ПравилоОписание
M0-1-8Все функции с пустым типом возврата должны иметь внешний побочный эффект (эффекты).
M0-3-1Минимизация отказов во время выполнения должна быть обеспечена при помощи по крайней мере одного of:\n (a) инструменты/методы статического анализа; \n (b) инструменты/методы динамического анализа; \n (c) явное кодирование проверок, чтобы обработать отказы во время выполнения.
M0-4-1Использование масштабировано-целочисленных или вычислений с фиксированной точкой должно быть зарегистрировано.
M0-4-2Использование арифметики с плавающей точкой должно быть зарегистрировано.
A0-4-1Реализация с плавающей точкой должна выполнить стандарт IEEE 754.
A0-4-3Реализации в выбранном компиляторе должны строго выполнить C++ 14 Стандартов Языка.
A0-4-4Область значений, область и ошибки полюса должны проверяться при использовании математических функций.
M1-0-2Несколько компиляторов должны только использоваться, если у них будет общий, заданный интерфейс.
A1-1-2Уровень предупреждения процесса компиляции должен быть установлен в соответствии с политиками проекта.
A1-1-3Опция оптимизации, которая игнорирует строгую стандартную податливость, не должна быть включена в выбранном компиляторе.
A1-2-1При использовании набора инструментальных средств компилятора (включая препроцессор, сам компилятор, компоновщик, библиотеки стандарта C++) в связанном с безопасностью программном обеспечении, должен быть определен доверительный уровень инструмента (TCL). В случае TCL2 или TCL3, компилятор должен подвергнуться "Проверке программного инструмента", согласно ISO 26262-8.11.4.6 [5].
A1-4-1Метрики кода и их допустимые контуры должны быть заданы, и код должен выполнить заданные контуры метрик кода.
A2-7-5Комментарии не должны документировать действия или источники (e.g. таблицы, фигуры, абзацы, и т.д.), которые находятся вне файла.
A5-2-5К массиву или контейнеру нельзя получить доступ вне его области значений.
A5-5-1Указатель на член не должен получать доступ к несуществующим членам класса.
M5-17-1Семантическая эквивалентность между бинарным оператором и его формой оператора присваивания должна быть сохранена.
A6-5-1Цикл for, что циклы через все элементы контейнера и не используют его счетчик цикла, не должен использоваться.
A7-2-1Выражение с типом лежания в основе перечисления должно только иметь значения, соответствующие перечислителям перечисления.
M7-4-1Все использование ассемблера должно быть зарегистрировано.
A8-4-11Интеллектуальный указатель должен только использоваться в качестве типа параметра, если он опишет пожизненную семантику
A8-4-12Станд.:: unique_ptr должен быть передан функции as:\n (1), копия, чтобы описать функцию принимает ownership\n (2) lvalue ссылка, чтобы описать, что функция заменяет управляемый объект.
A8-4-13Станд.:: shared_ptr должен быть передан функции as:\n (1), копия, чтобы описать функцию совместно использует ownership\n (2) lvalue ссылка, чтобы описать, что функция заменяет управляемый object\n (3) const lvalue ссылка, чтобы описать, что функция сохраняет подсчет ссылок.
M9-6-1Когда абсолютное расположение битов, представляющих битовое поле, будет требоваться, затем поведение и упаковка битовых полей должны быть зарегистрированы.
A9-6-2Битовые поля должны использоваться только при взаимодействии через интерфейс к оборудованию или приспосабливании протоколам связи.
A10-0-1Общедоступное наследование должно использоваться, чтобы реализовать отношение "isa".
A10-0-2Членство или непубличное наследование должны использоваться, чтобы реализовать, "имеет -" отношение.
A13-1-3Определяемые пользователем операторы литералов должны только выполнить преобразование переданных параметров.
A13-5-4Если два противоположных оператора будут заданы, каждый должен быть задан в терминах другого.
A15-0-1Функция не должна выходить за исключением, если она сможет выполнить свою задачу.
A15-0-2По крайней мере, основная гарантия безопасности исключения должна быть обеспечена для всех операций. Кроме того, каждая функция может предложить или сильную гарантию или гарантию nothrow
A15-0-3Гарантия безопасности исключения вызванной функции должна быть рассмотрена.
A15-0-4Исключения непроверенные должны использоваться, чтобы представлять ошибки, с которых вызывающая сторона, как могут обоснованно ожидать, не восстановится.
A15-0-5Контролируемые исключительные ситуации должны использоваться, чтобы представлять ошибки, с которых вызывающая сторона, как могут обоснованно ожидать, восстановится.
A15-0-6Анализ должен выполняться, чтобы анализировать типы отказа обработки исключений. В частности, следующие типы отказа должны быть analyzed:\n (a) худшее время выполнения времени, не существующее, или не могут быть определены, \n (b) стек, не правильно раскрученный, \n (c) исключение, не выданное, другое выданное исключение, неправильно отловить активированный, \n (d) память, не доступная в то время как обработка исключений.
A15-0-7Механизм обработки исключений должен гарантировать детерминированное время выполнения времени худшего случая.
A15-0-8Анализ времени выполнения худшего случая (WCET) должен выполняться, чтобы определить максимальные ограничения времени выполнения программного обеспечения, покрывая в частности обработку исключений.
A15-1-5Исключения не должны быть выданы через контуры выполнения.
A15-3-2Если функция выдаст исключение, она должна быть обработана, когда значимые меры смогут быть приняты, в противном случае она должна быть распространена.
A16-2-2Там будет не не использовано, включают директивы.
A16-2-3Включать директива должна быть добавлена явным образом для каждого символа, используемого в файле.
A17-0-2Код всего проекта включая библиотеки, которыми пользуются (включая стандартные и пользовательские библиотеки) и любой сторонний пользовательский код должны приспособить C++ AUTOSAR 14 Инструкциям по Кодированию.
A17-1-1Использование Стандартной Библиотеки C должно инкапсулироваться и изолироваться.
A18-1-4Указатель, указывающий на элемент массива объектов, не должен быть передан интеллектуальному указателю типа отдельного объекта.
A18-5-6Анализ должен выполняться, чтобы анализировать типы отказа управления динамической памятью. В частности, следующие типы отказа должны быть analyzed:\n (a) недетерминированное поведение, заканчивающееся с несуществованием времени выполнения худшего случая, \n (b) фрагментация памяти, \n (c) исчерпывание памяти, \n (d) выделения, которым не соответствуют, и освобождение, \n (e) зависимость от недетерминированных вызовов ядра.
A18-5-7Если реализация нев реальном времени функций управления динамической памятью будет использоваться в проекте, то память должна только быть выделена и освобождена во время фаз программы нев реальном времени.
A20-8-4Станд.:: unique_ptr должен использоваться по станд.:: shared_ptr, если владение, совместно использующее, не требуется.
A20-8-7Станд.:: weak_ptr должен использоваться, чтобы представлять временное разделяемое владение.
A23-0-2К элементам контейнера нужно только получить доступ через действительные ссылки, итераторы и указатели.
A25-1-1Нестатические элементы данных или полученные значения функциональных объектов предиката, которые являются состоянием, связанным с идентичностью этого объекта, не должны быть скопированы.
A25-4-1Упорядоченное расположение предикатов, используемых с ассоциативными контейнерами и сортировкой STL и связанными алгоритмами, должно придерживаться строгого слабого отношения упорядоченного расположения.

Смотрите также

Похожие темы