Polyspace может проверить ваш код на соответствие стандарту кодирования MISRA C++ 2008. Используйте 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 | Триграфы не должны использоваться |
MISRA C++:2008 Rule 2-5-1 | Не следует использовать диграфы |
MISRA C++:2008 Rule 2-7-1 | Последовательность символов/* не должна использоваться в комментарии в стиле Си |
MISRA C++:2008 Rule 2-7-2 | Разделы кода не должны быть «прокомментированы» с помощью комментариев в стиле Си |
MISRA C++:2008 Rule 2-7-3 | Разделы кода не следует «комментировать» с помощью комментариев стиля C++ |
MISRA C++:2008 Rule 2-10-1 | Различные идентификаторы должны быть типографско однозначными |
MISRA C++:2008 Rule 2-10-2 | Идентификаторы, объявленные во внутренней области, не должны скрывать идентификатор, объявленный во внешней области |
MISRA C++:2008 Rule 2-10-3 | Имя typedef (включая квалификацию, если она имеется) должно быть уникальным идентификатором |
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 | Должны использоваться только те спасательные последовательности, которые определены в стандарте 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 | Типы, используемые для объекта, возвращаемого типа функции или параметра функции, должны быть token-for-token идентичными во всех объявлениях и повторных объявлениях. |
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 | Выражения с типом (равнина) случайная работа и wchar_t не должны использоваться в качестве операндов встроенным операторам кроме оператора назначения =, операторы равенства == и! =, и одноместное & оператор Н. |
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 | Не должно быть явных плавающих-интегральных преобразований выражения значения |
MISRA C++:2008 Rule 5-0-8 | Явное преобразование интеграла или с плавающей запятой не должно увеличивать размер базового типа выражения значения |
MISRA C++:2008 Rule 5-0-9 | Явное интегральное преобразование не должно изменять сигнатуру базового типа выражения значения |
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-оператора и условие iteration- оператора должны иметь тип 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 | Отливка не должна исключать каких-либо противоречий или изменчивых квалификаций из типа указателя или ссылки |
MISRA C++:2008 Rule 5-2-6 | Приведение не должно преобразовывать указатель на функцию в любой другой тип указателя, включая указатель на тип функции |
MISRA C++:2008 Rule 5-2-7 | Объект с типом указателя не должен преобразовываться в несвязанный тип указателя, прямо или косвенно |
MISRA C++:2008 Rule 5-2-8 | Объект с целым типом или указатель на тип void не должен преобразовываться в объект с типом указателя |
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 | Оценка операнда оператору размера не должна содержать побочных эффектов |
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 | Перед предварительной обработкой оператор null должен выполняться только в строке самостоятельно; за ним может следовать комментарий при условии, что первый символ, следующий за оператором null, является символом пробела |
MISRA C++:2008 Rule 6-3-1 | Заявление, формирующее корпус выключателя, в то время как, делает, в то время как или для заявления будет составное заявление |
MISRA C++:2008 Rule 6-4-1 | За конструкцией if (условие) следует составная инструкция Ключевое слово else следует либо составная инструкция, либо другая инструкция if |
MISRA C++:2008 Rule 6-4-2 | Все, если еще, если конструкции должны быть прекращены пунктом |
MISRA C++:2008 Rule 6-4-3 | Оператор переключения должен быть хорошо сформированным оператором переключения |
MISRA C++:2008 Rule 6-4-4 | Метка switch должна использоваться только в том случае, если самым близким составным оператором является тело оператора switch. |
MISRA C++:2008 Rule 6-4-5 | Заявление о безусловном сбросе или разрыве прекращает действие каждого непустого пункта о переключении |
MISRA C++:2008 Rule 6-4-6 | Последним пунктом заявления о переключении является пункт по умолчанию. |
MISRA C++:2008 Rule 6-4-7 | Состояние оператора переключения не должно иметь тип bool |
MISRA C++:2008 Rule 6-4-8 | Каждый оператор переключения должен иметь, по крайней мере, один вариант |
MISRA C++:2008 Rule 6-5-1 | Шлейф для должен содержать один шлейф-счетчик, который не должен иметь плавающего типа |
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 | Переменная loop-control, отличная от счетчика loop-counter, измененного в операторе, должна иметь тип bool |
MISRA C++:2008 Rule 6-6-1 | Любая метка, на которую ссылается оператор goto, должна быть объявлена в том же блоке или в блоке, включающем оператор goto. |
MISRA C++:2008 Rule 6-6-2 | Оператор goto должен перейти к метке, объявленной позже в том же теле функции |
MISRA C++:2008 Rule 6-6-3 | Оператор continue должен использоваться только в хорошо сформированном цикле для |
MISRA C++:2008 Rule 6-6-4 | Для любого оператора итерации должно быть не более одного перерыва или оператора goto, используемого для завершения цикла |
MISRA C++:2008 Rule 6-6-5 | Функция должна иметь единственную точку выхода в конце функции |
MISRA C++:2008 Rule 7-1-1 | Переменная, которая не была изменена, должна быть квалифицирована как const |
MISRA C++:2008 Rule 7-1-2 | Указатель или ссылочный параметр в функции объявляется как указатель на конст или ссылка на конст, если соответствующий объект не изменен |
MISRA C++:2008 Rule 7-3-1 | Глобальное пространство имен должно содержать только основные, объявления пространства имен и внешние объявления «C» |
MISRA C++:2008 Rule 7-3-2 | Идентификатор main не должен использоваться для функции, отличной от глобальной функции main |
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 | using-directives и using-declarations (исключая using-declarations области действия класса или функции) не должны использоваться в файлах заголовков |
MISRA C++:2008 Rule 7-4-2 | Инструкции по сборке должны вводиться только с использованием асм-декларации |
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 или member-declarator-list должен состоять из одного init-declarator или member-declarator соответственно. |
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 | Все пути выхода из функции с типом возврата non-void должны иметь явную инструкцию return с выражением |
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 не должны возвращать указатели non-const или ссылки на данные класса |
MISRA C++:2008 Rule 9-3-2 | Функции-члены не должны возвращать дескрипторы non-const в данные класса |
MISRA C++:2008 Rule 9-3-3 | Если функция элемента может быть сделана статичной, то она должна быть сделана статичной, в противном случае, если она может быть сделана const, то она должна быть сделана const |
MISRA C++:2008 Rule 9-5-1 | Профсоюзы не должны использоваться |
MISRA C++:2008 Rule 9-6-2 | Битовые поля должны быть либо логического типа, либо явно неподписанного или подписанного интегрального типа |
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 | Каждая переопределяющая виртуальная функция должна быть объявлена с помощью ключевого слова virtual |
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 | В шаблоне класса с зависимой базой любое имя, которое может быть найдено в этой зависимой базе, должно упоминаться с использованием квалифицированного идентификатора или this- > |
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 | Управление не должно передаваться в блок try или catch с помощью оператора goto или switch |
MISRA C++:2008 Rule 15-1-1 | Назначение-выражение оператора throw не должно само по себе вызывать исключение |
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 | Обработчики реализации function-try-block конструктора класса или деструктора не должны ссылаться на нестатические элементы из этого класса или его баз |
MISRA C++:2008 Rule 15-3-4 | Каждое исключение, явно созданное в коде, должно иметь обработчик совместимого типа во всех путях вызова, который может привести к этой точке |
MISRA C++:2008 Rule 15-3-5 | Исключение типа класса всегда должно перехватываться по ссылке |
MISRA C++:2008 Rule 15-3-6 | Если в одной инструкции try-catch или function-try-block предусмотрено несколько обработчиков для производного класса и некоторых или всех его баз, обработчики должны быть упорядочены наиболее производными для базового класса. |
MISRA C++:2008 Rule 15-3-7 | Если в одной инструкции try-catch или function-try-block предусмотрено несколько обработчиков, любой обработчик многоточия (catch-all) должен быть последним |
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 | Функция terminate () не должна вызываться неявно |
MISRA C++:2008 Rule 16-0-1 | # include directions в файле должны предшествовать только другие директивы или комментарии препроцессора |
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 | Функции библиотеки atoi, atoi и atol из библиотеки < 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 | Макро смещение не должно использоваться |
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++.
Проверка нарушений стандартов кодирования
Проверьте наличие нарушений стандартов AUTOSAR C++ 14, CERT ® C, CERT C++ MISRA C ®, MISRA C++, JSF AV C++ или ISO-17961 с помощью средства поиска ошибок или средства проверки кода.
Целевые подмножества качества программного обеспечения (C++)
Узнайте, какие правила MISRA C++ уменьшают сложность кода и количество неподтвержденных проверок в программе проверки кода.
Неподдерживаемые правила кодирования MISRA C++
Узнайте, какие правила MISRA C++ не поддерживаются в Polyspace.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.