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 | Операторы сравнения должны быть функциями лица, не являющегося членом какой-либо организации, с идентичными типами параметра и noexcept | AUTOSAR 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-3 | noexcept спецификация функции должна или быть идентичной через все модули перевода, или идентичной или более строгой между виртуальной функцией членства и сверхнаездником | 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-3 | wchar_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-1 | Trigraphs не должен использоваться | 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_ptr | AUTOSAR C++14 Rule A20-8-5 |
AUTOSAR C++ 14 правил A20-8-6 | станд:: должен использоваться, чтобы создать объекты, принадлежавшие станд.:: shared_ptr | AUTOSAR 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_iterator | AUTOSAR C++14 Rule A23-0-1 |
AUTOSAR C++ 14 правил A26-5-1 | Псевдослучайные числа не должны быть сгенерированы с помощью станд.:: rand | AUTOSAR 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 или .hxx | AUTOSAR 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" и условие оператора цикла должны иметь тип bool | AUTOSAR 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-7 | Lambda не должен быть операндом к 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-4 | reinterpret_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-1 | Constexpr или спецификаторы const должны использоваться для неизменяемого объявления данных | AUTOSAR C++14 Rule A7-1-1 |
AUTOSAR C++ 14 правил A7-1-2 | constexpr спецификатор должен использоваться для значений, которые могут быть определены во время компиляции | 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 | Перечисления должны быть объявлены как ограниченные по объему классы Enum | AUTOSAR 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-1 | asm объявление не должно использоваться | AUTOSAR C++14 Rule A7-4-1 |
AUTOSAR C++ 14 правил A7-5-1 | Функция не должна возвращать ссылку или указатель на параметр, который передается в отношении const | AUTOSAR 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 | Параметр должен быть передан ссылкой, если это не может быть NULL | AUTOSAR 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 или оператора switch | AUTOSAR C++14 Rule M15-0-3 |
AUTOSAR C++ 14 правил M15-1-1 | Выражение присваивания оператора броска не должно самостоятельно заставлять исключение быть выданным | AUTOSAR C++14 Rule M15-1-1 |
AUTOSAR C++ 14 правил M15-1-2 | NULL не должен быть выдан явным образом | 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-5 | setjmp макрос и функция 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-1 | NULL не должен использоваться в качестве целочисленного значения | 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 | Первый операнд условного оператора должен иметь тип bool | AUTOSAR 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-3 | cvalue выражение не должно быть неявно преобразовано в различный базовый тип | 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_cast | AUTOSAR 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 | Каждый операнд! оператор, логический && или логическое || операторы должны иметь тип bool | AUTOSAR 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 | Если (условие) создают, буду сопровождаться составным оператором. Еще ключевое слово должно сопровождаться или составным оператором или другим оператором if | AUTOSAR C++14 Rule M6-4-1 |
AUTOSAR C++ 14 правил M6-4-2 | Все, если... еще, если построения должны быть отключены с выражением else | AUTOSAR C++14 Rule M6-4-2 |
AUTOSAR C++ 14 правил M6-4-3 | Оператор switch должен быть правильно построенным оператором switch | AUTOSAR C++14 Rule M6-4-3 |
AUTOSAR C++ 14 правил M6-4-4 | Метка переключателя должна только использоваться, когда наиболее тесно заключающий составной оператор будет телом оператора switch | AUTOSAR 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 не должно иметь типа bool | AUTOSAR 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 | Контрольная переменная цикла кроме счетчика цикла, который изменяется в операторе, должна иметь тип bool | AUTOSAR 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 должен только использоваться в правильно построенном цикле for | AUTOSAR 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-1 | Init-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 затем, это должно быть сделано const | AUTOSAR 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 и связанными алгоритмами, должно придерживаться строгого слабого отношения упорядоченного расположения. |
Check AUTOSAR C++ 14 (-autosar-cpp14)