MISRA C ++:2008 правил

Описание и примеры инструкций MISRA® C ++:2008 поддержаны в Polyspace®

Polyspace может проверять ваш код по C++ MISRA 2 008 стандартов кодирования. Используйте Check MISRA C++ rules (-misra-cpp) опция анализа, чтобы активировать подмножества правил.

Результаты Polyspace

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

MISRA C++:2008 Rule 0-1-1Проект не должен содержать недостижимый код
MISRA C++:2008 Rule 0-1-2Проект не должен содержать неосуществимые пути
MISRA C++:2008 Rule 0-1-3Проект не должен содержать неиспользуемые переменные
MISRA C++:2008 Rule 0-1-4Проект не должен содержать энергонезависимые переменные POD, имеющие только одно использование
MISRA C++:2008 Rule 0-1-5Проект не должен содержать неиспользованные описания типа
MISRA C++:2008 Rule 0-1-7Значение, возвращенное функцией, имеющей не - пустой тип возврата, который не является перегруженным оператором, должно всегда использоваться
MISRA C++:2008 Rule 0-1-9Не должно быть никакого мертвого кода
MISRA C++:2008 Rule 0-1-10Каждая заданная функция должна быть вызвана, по крайней мере, однажды
MISRA C++:2008 Rule 0-1-11Не должно быть никаких неиспользованных параметров (названы или без имени) в невиртуальных функциях
MISRA C++:2008 Rule 0-1-12Не должно быть никаких неиспользованных параметров (названы или без имени) в наборе параметров для виртуальной функции и всех функций, которые заменяют его
MISRA C++:2008 Rule 0-2-1Объект не должен быть присвоен перекрывающемуся объекту
MISRA C++:2008 Rule 0-3-2Если функция сгенерирует информацию об ошибке, то та информация об ошибке должна быть протестирована
MISRA C++:2008 Rule 1-0-1Весь код должен соответствовать ISO/IEC 14882:2003 "Стандарт C++ Слияние Технического Исправления 1"
MISRA C++:2008 Rule 2-3-1Trigraphs не должен использоваться
MISRA C++:2008 Rule 2-5-1Диграфы не должны использоваться
MISRA C++:2008 Rule 2-7-1Последовательность символов/* не должна использоваться в рамках комментария C-стиля
MISRA C++:2008 Rule 2-7-2Разделы кода не должны быть то, " закомментировал" использование комментариев C-стиля
MISRA C++:2008 Rule 2-7-3Разделы кода не должны быть то, " закомментировал" использование комментариев в стиле С++
MISRA C++:2008 Rule 2-10-1Различные идентификаторы должны быть типографским способом однозначными
MISRA C++:2008 Rule 2-10-2Идентификаторы, объявленные во внутреннем осциллографе, не должны скрывать идентификатор, объявленный во внешнем осциллографе
MISRA C++:2008 Rule 2-10-3Имя определения типа (включая проверку, если таковые имеются) должно быть уникальным идентификатором
MISRA C++:2008 Rule 2-10-4Класс, объединение или перечислимое имя (включая проверку, если таковые имеются) должны быть уникальным идентификатором
MISRA C++:2008 Rule 2-10-5Имя идентификатора объекта лица, не являющегося членом какой-либо организации, или функции со статической продолжительностью хранения не должно быть снова использовано
MISRA C++:2008 Rule 2-10-6Если идентификатор будет относиться к типу, он не должен также относиться к объекту или функции в том же осциллографе
MISRA C++:2008 Rule 2-13-1Только те escape-последовательности, которые заданы в ISO/IEC 14882:2003, должны использоваться
MISRA C++:2008 Rule 2-13-2Восьмеричные константы (кроме нуля) и восьмеричные escape-последовательности (кроме "\0") не должны использоваться
MISRA C++:2008 Rule 2-13-3Суффикс "U" должен быть применен ко всем восьмеричным или шестнадцатеричным целочисленным литералам типа без знака
MISRA C++:2008 Rule 2-13-4Литеральные суффиксы должны быть верхним регистром
MISRA C++:2008 Rule 2-13-5Узкие и широкие строковые литералы не должны быть конкатенированы
MISRA C++:2008 Rule 3-1-1Должно быть возможно включать любой заголовочный файл в несколько модулей перевода, не нарушая Одно Правило Определения
MISRA C++:2008 Rule 3-1-2Функции не должны быть объявлены в области действия блока
MISRA C++:2008 Rule 3-1-3Когда массив будет объявлен, его размер должен или быть утвержден явным образом или задан неявно инициализацией
MISRA C++:2008 Rule 3-2-1Все объявления объекта или функции должны иметь совместимые типы
MISRA C++:2008 Rule 3-2-2Одно Правило Определения не должно быть нарушено
MISRA C++:2008 Rule 3-2-3Тип, объект или функция, которая используется в нескольких модулях перевода, должны быть объявлены в одном и только одном файле
MISRA C++:2008 Rule 3-2-4Идентификатор с внешним рычажным устройством должен иметь точно одно определение
MISRA C++:2008 Rule 3-3-1Объекты или функции с внешним рычажным устройством должны быть объявлены в заголовочном файле
MISRA C++:2008 Rule 3-3-2Если функция будет иметь внутреннее рычажное устройство затем, то все переобъявления должны включать статический спецификатор класса памяти
MISRA C++:2008 Rule 3-4-1Идентификатор, который, как объявляют, был объектом или типом, должен быть задан в блоке, который минимизирует его видимость
MISRA C++:2008 Rule 3-9-1Типы, используемые для объекта, функционального типа возврата или параметра функции, должны быть лексемой для лексемы, идентичной во всех объявлениях и переобъявлениях
MISRA C++:2008 Rule 3-9-2определения типов, которые указывают на размер и со знаком, должны использоваться вместо основных числовых типов
MISRA C++:2008 Rule 3-9-3Базовые битные представления значений с плавающей точкой не должны использоваться
MISRA C++:2008 Rule 4-5-1Выражения с типом bool не должны использоваться в качестве операндов к встроенным операторам кроме оператора присваивания =, логические операторы &&, ||!, операторы равенства == и! =, унарное & оператор и условный оператор
MISRA C++:2008 Rule 4-5-2Выражения с перечислением типа не должны использоваться в качестве операндов к созданному - в операторах кроме оператора индекса [], оператор присваивания =, операторы равенства == и! =, унарное & оператор и операторы отношения <<=>,> =
MISRA C++:2008 Rule 4-5-3Выражения с типом (простой) char и wchar_t не должны использоваться в качестве операндов к встроенным операторам кроме оператора присваивания =, операторы равенства == и! =, и унарное & оператор N
MISRA C++:2008 Rule 4-10-1NULL не должен использоваться в качестве целочисленного значения
MISRA C++:2008 Rule 4-10-2Литеральный нуль (0) не должен использоваться в качестве постоянного нулевым указателем
MISRA C++:2008 Rule 5-0-1Значение выражения должно быть тем же самым согласно любому порядку оценки, которую разрешает стандарт
MISRA C++:2008 Rule 5-0-2Ограниченная зависимость должна быть помещена в правила приоритета оператора C++ в выражениях
MISRA C++:2008 Rule 5-0-3cvalue выражение не должно быть неявно преобразовано в различный базовый тип
MISRA C++:2008 Rule 5-0-4Неявное интегральное преобразование не должно изменять со знаком из базового типа
MISRA C++:2008 Rule 5-0-5Не должно быть никаких неявных интегральных плаванием преобразований
MISRA C++:2008 Rule 5-0-6Неявное интегральное или преобразование с плавающей точкой не должно уменьшать размер базового типа
MISRA C++:2008 Rule 5-0-7Не должно быть никаких явных интегральных плаванием преобразований cvalue выражения
MISRA C++:2008 Rule 5-0-8Явное интегральное или преобразование с плавающей точкой не должно увеличивать размер базового типа cvalue выражения
MISRA C++:2008 Rule 5-0-9Явное интегральное преобразование не должно изменять со знаком из базового типа cvalue выражения
MISRA C++:2008 Rule 5-0-10Если побитовые операторы ~ и <<будут применены к операнду с базовым типом символьного или короткого целого без знака без знака, результат должен быть сразу брошен к базовому типу операнда
MISRA C++:2008 Rule 5-0-11Простой символьный тип должен только использоваться для устройства хранения данных и использования символьных значений
MISRA C++:2008 Rule 5-0-12Символ со знаком и символьный тип без знака должны только использоваться для устройства хранения данных и использования числовых значений
MISRA C++:2008 Rule 5-0-13Условие оператора "if" и условие оператора цикла должны иметь тип bool
MISRA C++:2008 Rule 5-0-14Первый операнд условного оператора должен иметь тип bool
MISRA C++:2008 Rule 5-0-15Индексация массива должна быть единственной формой адресной арифметики с указателями
MISRA C++:2008 Rule 5-0-16Операнд указателя и любой указатель, следующий из адресной арифметики с указателями с помощью того операнда, должны оба обратиться к элементам того же массива.
MISRA C++:2008 Rule 5-0-17Вычитание между указателями должно только быть применено к указателям, которые обращаются к элементам того же массива
MISRA C++:2008 Rule 5-0-18>,> =, <<= не буду применен к объектам типа указателя, кроме того, где они указывают на тот же массив
MISRA C++:2008 Rule 5-0-19Объявление объектов должно содержать не больше, чем два уровня косвенности указателя
MISRA C++:2008 Rule 5-0-20Непостоянные операнды к бинарному побитовому оператору должны иметь тот же базовый тип
MISRA C++:2008 Rule 5-0-21Побитовые операторы должны только быть применены к операндам базового типа без знака
MISRA C++:2008 Rule 5-2-1Каждый операнд логического && или || должен быть постфиксным выражением
MISRA C++:2008 Rule 5-2-2Указатель на виртуальный базовый класс должен только быть брошен к указателю на производный класс посредством dynamic_cast
MISRA C++:2008 Rule 5-2-3Броски от базового класса до производного класса не должны быть выполнены на полиморфных типах
MISRA C++:2008 Rule 5-2-4Броски C-стиля (кроме пустых бросков) и функциональных бросков обозначения (кроме вызовов явного конструктора) не должны использоваться
MISRA C++:2008 Rule 5-2-5Бросок не должен удалять const или энергозависимую проверку от типа указателя или ссылки
MISRA C++:2008 Rule 5-2-6Бросок не должен преобразовывать указатель на функцию ни к какому другому типу указателя, включая указатель на функциональный тип
MISRA C++:2008 Rule 5-2-7Объект с типом указателя не должен быть преобразован в несвязанный тип указателя, ни один прямо или косвенно
MISRA C++:2008 Rule 5-2-8Объект с целочисленным типом или указателем, чтобы освободить тип не должен быть преобразован в объект с типом указателя
MISRA C++:2008 Rule 5-2-9Бросок не должен преобразовывать тип указателя в целочисленный тип
MISRA C++:2008 Rule 5-2-10Шаг (++) и декремент (-) операторы не должен быть смешан с другими операторами в выражении
MISRA C++:2008 Rule 5-2-11Оператор запятой, && оператор и || оператор не должен быть перегружен
MISRA C++:2008 Rule 5-2-12Идентификатор с типом массива, переданным как аргумент функции, не должен затухать к указателю
MISRA C++:2008 Rule 5-3-1Каждый операнд! оператор, логический && или логическое || операторы должны иметь тип bool
MISRA C++:2008 Rule 5-3-2Оператор унарный минус не должен быть применен к выражению, базовый тип которого без знака
MISRA C++:2008 Rule 5-3-3Унарное & оператор не должны быть перегружены
MISRA C++:2008 Rule 5-3-4Оценка операнда к sizeof оператору не должна содержать побочные эффекты
MISRA C++:2008 Rule 5-8-1Правый операнд оператора сдвига должен находиться между нулем и меньше, чем ширина в битах базового типа левого операнда
MISRA C++:2008 Rule 5-14-1Правый операнд логического && или || оператор не должен содержать побочные эффекты
MISRA C++:2008 Rule 5-18-1Оператор запятой не должен использоваться
MISRA C++:2008 Rule 5-19-1Оценка постоянных выражений беззнаковых целых чисел не должна вести, чтобы повториться
MISRA C++:2008 Rule 6-2-1Операторы присваивания не должны использоваться в подвыражениях
MISRA C++:2008 Rule 6-2-2Выражения с плавающей точкой не должны быть прямо или косвенно протестированы на равенство или неравенство
MISRA C++:2008 Rule 6-2-3Перед предварительной обработкой пустой оператор должен только произойти на линии отдельно; это может сопровождаться комментарием, при условии, что первый символ после пустого оператора является белым - пробел
MISRA C++:2008 Rule 6-3-1Оператор, формирующий тело переключателя, в то время как, делает, в то время как или для оператора будет составной оператор
MISRA C++:2008 Rule 6-4-1Если (условие) создают, еще буду сопровождаться составным оператором, ключевое слово должно сопровождаться или составным оператором или другим оператором if
MISRA C++:2008 Rule 6-4-2Все, если еще, если построения должны быть отключены с выражением else
MISRA C++:2008 Rule 6-4-3Оператор switch должен быть правильно построенным оператором switch
MISRA C++:2008 Rule 6-4-4Метка переключателя должна только использоваться, когда наиболее тесно заключающий составной оператор будет телом оператора switch
MISRA C++:2008 Rule 6-4-5Безусловный бросок или оператор завершения должны отключить каждый не - пустой пункт переключателя
MISRA C++:2008 Rule 6-4-6Итоговый пункт оператора switch должен быть пунктом по умолчанию
MISRA C++:2008 Rule 6-4-7Условие оператора switch не должно иметь типа bool
MISRA C++:2008 Rule 6-4-8Каждый оператор switch должен иметь по крайней мере один пункт случая
MISRA C++:2008 Rule 6-5-1Цикл for должен содержать один счетчик цикла, который не должен иметь типа с плавающей точкой
MISRA C++:2008 Rule 6-5-2Если счетчик цикла не будет изменен - или ++, то в условии счетчик цикла должен только использоваться в качестве операнда к <=, <> или> =
MISRA C++:2008 Rule 6-5-3Счетчик цикла не должен быть изменен в условии или операторе
MISRA C++:2008 Rule 6-5-4Счетчик цикла должен быть изменен одним из: - ++, - =n, или + =n; где n остается постоянным на время цикла
MISRA C++:2008 Rule 6-5-5Контрольная переменная цикла кроме счетчика цикла не должна быть изменена в условии или выражении
MISRA C++:2008 Rule 6-5-6Контрольная переменная цикла кроме счетчика цикла, который изменяется в операторе, должна иметь тип bool
MISRA C++:2008 Rule 6-6-1Любая метка, на которую ссылается оператор перехода, должна быть объявлена в том же блоке, или в блоке, заключающем оператор перехода
MISRA C++:2008 Rule 6-6-2Оператор перехода должен перейти к метке, объявленной позже в том же теле функции
MISRA C++:2008 Rule 6-6-3Оператор continue должен только использоваться в правильно построенном цикле for
MISRA C++:2008 Rule 6-6-4Для любого оператора цикла должен быть не больше, чем один оператор завершения, или оператор перехода использовал завершение цикла for
MISRA C++:2008 Rule 6-6-5Функция должна иметь одну точку выхода в конце функции
MISRA C++:2008 Rule 7-1-1Переменная, которая не изменяется, должна быть квалифицированным const
MISRA C++:2008 Rule 7-1-2Указатель или параметр ссылки в функции должны быть объявлены как указатель на const или ссылка на const, если соответствующий объект не будет изменен
MISRA C++:2008 Rule 7-3-1Глобальное пространство имен должно только содержать основные, объявления пространства имен и экстерна "C" объявления
MISRA C++:2008 Rule 7-3-2Основной идентификатор не должен использоваться для функции кроме глобального функционального основного
MISRA C++:2008 Rule 7-3-3В заголовочных файлах не должно быть никаких пространств имен без имени
MISRA C++:2008 Rule 7-3-4директивы использования не должны использоваться
MISRA C++:2008 Rule 7-3-5Многократные объявления для идентификатора в том же пространстве имен не должны колебаться между объявлением использования для того идентификатора
MISRA C++:2008 Rule 7-3-6директивы использования и объявления использования (исключая осциллограф класса или функциональные объявления использования осциллографа) не должны использоваться в заголовочных файлах
MISRA C++:2008 Rule 7-4-2Ассемблерные инструкции должны только быть введены с помощью asm объявления
MISRA C++:2008 Rule 7-4-3Ассемблер должен инкапсулироваться и изолироваться
MISRA C++:2008 Rule 7-5-1Функция не должна возвращать ссылку или указатель на автоматическую переменную (включая параметры), заданный в функции
MISRA C++:2008 Rule 7-5-2Адрес объекта с автоматическим хранением не должен быть присвоен другому объекту, который может сохраниться после того, как первый объект прекратил существование
MISRA C++:2008 Rule 7-5-3Функция не должна возвращать ссылку или указатель на параметр, который передается ссылкой const или ссылкой
MISRA C++:2008 Rule 7-5-4Функции не должны вызывать себя, ни один прямо или косвенно
MISRA C++:2008 Rule 8-0-1Init-declarator-list или список оператора объявления члена должны состоять из одного init-оператора-объявления или оператора объявления члена соответственно
MISRA C++:2008 Rule 8-3-1Параметры в переопределяющей виртуальной функции должны или использовать те же параметры по умолчанию в качестве функции, которую они заменяют или иначе не должны задавать параметры по умолчанию
MISRA C++:2008 Rule 8-4-1Функции не должны быть заданы с помощью обозначения замещающего знака
MISRA C++:2008 Rule 8-4-2Идентификаторы, используемые для параметров в переобъявлении функции, должны быть идентичны тем в объявлении
MISRA C++:2008 Rule 8-4-3Все выходные пути от функции с не - пустой тип возврата должны иметь явный оператор возврата с выражением
MISRA C++:2008 Rule 8-4-4Функциональный идентификатор должен или использоваться, чтобы вызвать функцию, или этим нужно предшествовать &
MISRA C++:2008 Rule 8-5-1Все переменные должны иметь заданное значение, прежде чем они будут использоваться
MISRA C++:2008 Rule 8-5-2Фигурные скобки должны использоваться, чтобы указать и совпадать со структурой в не - нулевая инициализация массивов и структур
MISRA C++:2008 Rule 8-5-3В списке перечислителей = построение не должно использоваться, чтобы явным образом инициализировать члены кроме первого, если все элементы не будут явным образом инициализированы
MISRA C++:2008 Rule 9-3-1функции членства const не должны возвращать указатели неconst или ссылки на данные класса
MISRA C++:2008 Rule 9-3-2Функции членства не должны возвращать указатели неconst на данные класса
MISRA C++:2008 Rule 9-3-3Если функция членства может быть сделана статической затем, это должно быть сделано статическим, в противном случае если это может быть сделано const затем, это должно быть сделано const
MISRA C++:2008 Rule 9-5-1Объединения не должны использоваться
MISRA C++:2008 Rule 9-6-2Битовые поля должны быть или типом bool или явным образом целочисленным типом со знаком или без знака
MISRA C++:2008 Rule 9-6-3Битовые поля не должны иметь перечислимого типа
MISRA C++:2008 Rule 9-6-4Названные битовые поля с типом целого числа со знаком должны иметь длину больше чем одного бита
MISRA C++:2008 Rule 10-1-1Классы не должны быть выведены из виртуальных базисов
MISRA C++:2008 Rule 10-1-2Базовый класс должен только быть объявлен виртуальный, если он будет использоваться в ромбовидной иерархии
MISRA C++:2008 Rule 10-1-3Доступный базовый класс не должен быть и виртуальным и невиртуальным в той же иерархии
MISRA C++:2008 Rule 10-2-1Все доступные имена сущности в иерархии наследования кратного должны быть уникальными
MISRA C++:2008 Rule 10-3-1Должно быть не больше, чем одно определение каждой виртуальной функции на каждом пути через иерархию наследования
MISRA C++:2008 Rule 10-3-2Каждая переопределяющая виртуальная функция должна быть объявлена с виртуальным ключевым словом
MISRA C++:2008 Rule 10-3-3Виртуальная функция должна только быть заменена чистой виртуальной функцией, если она будет самостоятельно объявлена как чистая виртуальная
MISRA C++:2008 Rule 11-0-1Данные члена в не - типы классов POD должны быть частными
MISRA C++:2008 Rule 12-1-1Динамический тип объекта не должен использоваться от тела его конструктора или деструктора
MISRA C++:2008 Rule 12-1-2Все конструкторы класса должны явным образом вызвать конструктора для всех его мгновенных базовых классов и всех виртуальных базовых классов
MISRA C++:2008 Rule 12-1-3Все конструкторы, которые являются вызываемыми с отдельным аргументом фундаментального типа, должны быть объявлены явные
MISRA C++:2008 Rule 12-8-1Конструктор копии должен только инициализировать ее базовые классы и не - статические члены класса, которого это - член
MISRA C++:2008 Rule 12-8-2Оператор присваивания копии должен быть объявлен защищенный или частный в абстрактном классе
MISRA C++:2008 Rule 14-5-1Родовая функция лица, не являющегося членом какой-либо организации, должна только быть объявлена в пространстве имен, которое не является связанным пространством имен
MISRA C++:2008 Rule 14-5-2Конструктор копии должен быть объявлен, когда будет конструктор шаблона одним параметром, который является типовым параметром
MISRA C++:2008 Rule 14-5-3Оператор присваивания копии должен быть объявлен, когда будет оператор присваивания шаблона параметром, который является типовым параметром
MISRA C++:2008 Rule 14-6-1В шаблоне класса с зависимой основой любое имя, которое может быть найдено в той зависимой основе, должно быть отнесено в использование квалифицированного ID или этого->
MISRA C++:2008 Rule 14-6-2Функция, выбранная разрешением перегрузки, должна решить к функции, объявленной ранее в модуле перевода
MISRA C++:2008 Rule 14-7-3Все частичные и явные специализации для шаблона должны быть объявлены в том же файле как объявление их первичного шаблона
MISRA C++:2008 Rule 14-8-1Шаблоны перегруженной функции не должны быть явным образом специализированы
MISRA C++:2008 Rule 14-8-2Жизнеспособный функциональный набор для вызова функции не должен или содержать функциональные специализации, или только содержать функциональные специализации
MISRA C++:2008 Rule 15-0-2Объект исключения не должен иметь типа указателя
MISRA C++:2008 Rule 15-0-3Управление не должно быть передано в попытку или блок выгоды с помощью goto или оператора switch
MISRA C++:2008 Rule 15-1-1Выражение присваивания оператора броска не должно самостоятельно заставлять исключение быть выданным
MISRA C++:2008 Rule 15-1-2NULL не должен быть выдан явным образом
MISRA C++:2008 Rule 15-1-3Пустой бросок (бросок;) буду только использоваться в составном операторе обработчика выгоды
MISRA C++:2008 Rule 15-3-1Исключения должны быть повышены только после запуска и перед завершением программы
MISRA C++:2008 Rule 15-3-2Должен быть по крайней мере один обработчик исключений, чтобы отловить все в противном случае необработанные исключения
MISRA C++:2008 Rule 15-3-3Обработчики реализации функционального блока попытки конструктора класса или деструктора не должны ссылаться на нестатические члены от этого класса или его базисов
MISRA C++:2008 Rule 15-3-4Каждое исключение, явным образом добавленное, код должен иметь обработчик совместимого типа во всех путях к вызову, которые могли привести к той точке
MISRA C++:2008 Rule 15-3-5Исключение типа класса должно всегда отлавливаться ссылкой
MISRA C++:2008 Rule 15-3-6Где несколько обработчиков обеспечиваются в одном операторе try-catch или функциональном блоке попытки для производного класса, и некоторые или все его базисы, обработчики должны быть упорядочены наиболее выведенные базовому классу
MISRA C++:2008 Rule 15-3-7Где несколько обработчиков обеспечиваются в одном операторе try-catch или функциональном блоке попытки, любой замещающий знак (вместилище), обработчик должен произойти в последний раз
MISRA C++:2008 Rule 15-4-1Если функция будет объявлена со спецификацией исключения, то все объявления той же функции (в других модулях перевода) должны быть объявлены с тем же набором идентификаторов типов
MISRA C++:2008 Rule 15-5-1Деструктор класса не должен выходить за исключением
MISRA C++:2008 Rule 15-5-2Где объявление функции включает спецификацию исключения, функция должна только быть способна к выдаванию исключения обозначенного типа (типов)
MISRA C++:2008 Rule 15-5-3Оконечное () функция не должно быть названо неявно
MISRA C++:2008 Rule 16-0-1Директивам #include в файле должны только предшествовать другие директивы препроцессору или комментарии
MISRA C++:2008 Rule 16-0-2Макросы должны только быть #define 'd или #undef 'd в глобальном пространстве имен
MISRA C++:2008 Rule 16-0-3#undef не должен использоваться
MISRA C++:2008 Rule 16-0-4Подобные функции макросы не должны быть заданы
MISRA C++:2008 Rule 16-0-5Аргументы к подобному функции макросу не должны содержать лексемы, которые похожи на предварительную обработку директив
MISRA C++:2008 Rule 16-0-6В определении подобного функции макроса каждый экземпляр параметра должен быть заключен в круглые скобки, если это не будет использоваться в качестве операнда # или ##
MISRA C++:2008 Rule 16-0-7Неопределенные макро-идентификаторы не должны использоваться в #if или #elif директивах препроцессору, за исключением операндов к заданному оператору
MISRA C++:2008 Rule 16-0-8Если # лексема появится как первая лексема на линии, то это должно сразу сопровождаться лексемой предварительной обработки
MISRA C++:2008 Rule 16-1-1Заданный оператор препроцессора должен только использоваться в одной из двух стандартных форм
MISRA C++:2008 Rule 16-1-2Весь #else, #elif и #endif директивы препроцессору должен находиться в том же файле как #if или #ifdef директива, с которой они связаны
MISRA C++:2008 Rule 16-2-1Препроцессор должен только использоваться для включения файла и включать защиту
MISRA C++:2008 Rule 16-2-2Макросы C++ должны только использоваться для: включайте защиту, введите спецификаторы или спецификаторы класса памяти
MISRA C++:2008 Rule 16-2-3Включайте защиту, буду обеспечен
MISRA C++:2008 Rule 16-2-4', ",/* или//символы не должны происходить на имя заголовочного файла
MISRA C++:2008 Rule 16-2-5\символ не должен происходить на имя заголовочного файла
MISRA C++:2008 Rule 16-2-6#include директива должна сопровождаться или <имя файла> или последовательность "имени файла"
MISRA C++:2008 Rule 16-3-1Должно быть самое большее одно вхождение # или ## операторов в одном макроопределении
MISRA C++:2008 Rule 16-3-2# и ## операторы не должны использоваться
MISRA C++:2008 Rule 16-6-1Все использование #pragma директивы должно быть зарегистрировано
MISRA C++:2008 Rule 17-0-1Зарезервированные идентификаторы, макросы и функции в Стандартной Библиотеке не должны быть заданы, переопределены или не определены
MISRA C++:2008 Rule 17-0-2Имена стандартных макросов библиотеки и объектов не должны быть снова использованы
MISRA C++:2008 Rule 17-0-3Имена стандартных библиотечных функций не должны быть заменены
MISRA C++:2008 Rule 17-0-5setjmp макрос и функция longjmp не должны использоваться
MISRA C++:2008 Rule 18-0-1Библиотекой C нельзя пользоваться
MISRA C++:2008 Rule 18-0-2Библиотечные функции atof, atoi и атолл от библиотеки <cstdlib> не должны использоваться
MISRA C++:2008 Rule 18-0-3Аварийное прекращение работы библиотечных функций, выход, getenv и система от библиотеки <cstdlib> не должны использоваться
MISRA C++:2008 Rule 18-0-4Функции обработки времени библиотеки <ctime> не должны использоваться
MISRA C++:2008 Rule 18-0-5Неограниченные функции библиотеки <cstring> не должны использоваться
MISRA C++:2008 Rule 18-2-1Макрос offsetof не должен использоваться
MISRA C++:2008 Rule 18-4-1Динамическое выделение памяти кучи не должно использоваться
MISRA C++:2008 Rule 18-7-1Погрузочно-разгрузочное оборудование сигнала <csignal> не должно использоваться
MISRA C++:2008 Rule 19-3-1Ошибочный индикатор errno не должен использоваться
MISRA C++:2008 Rule 27-0-1Потоковый ввод / выходная библиотека <cstdio> не должен использоваться

Темы

Polyspace MISRA средства проверки C++

См. обзор поддержки Polyspace Стандарта C++ MISRA.

Проверяйте на кодирование стандартных нарушений

Проверяйте на нарушения C++ AUTOSAR 14, CERT® C, CERT C ++ MISRA C®, MISRA C++, JSF AV C++ или стандарт ISO 17961 с Программой автоматического доказательства Кода или Bug Finder.

Подмножества цели качества программного обеспечения (C++)

Смотрите, какие правила C++ MISRA уменьшают сложность кода и сокращают количество бездоказательных регистраций Программы автоматического доказательства Кода.

Неподдерживаемые правила кодирования C++ MISRA

Смотрите, какие правила C++ MISRA не поддерживаются в Polyspace.