Polyspace может проверять ваш код по C++ MISRA 2 008 стандартов кодирования. Используйте Check MISRA C++ rules
(-misra-cpp)
аналитическая опция, чтобы активировать подмножества правил.
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-1 | Trigraphs не должен использоваться |
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-1 | NULL не должен использоваться в качестве целочисленного значения |
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-3 | cvalue выражение не должно быть неявно преобразовано в различный базовый тип |
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-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-1 | Init-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-2 | NULL не должен быть выдан явным образом |
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-5 | setjmp макрос и функция 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 с Программой автоматического доказательства Средства поиска или Кода Ошибки.
Подмножества цели качества программного обеспечения (C++)
Смотрите, какие правила C++ MISRA уменьшают сложность кода и сокращают количество бездоказательных регистраций Программы автоматического доказательства Кода.
Неподдерживаемые правила кодирования C++ MISRA
Смотрите, какие правила C++ MISRA не поддерживаются в Polyspace.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.