Polyspace может проверить ваш код по правилам AUTOSAR C++ 14. Используйте Check AUTOSAR C++14 (-autosar-cpp14) для активации подмножеств правил.
AUTOSAR C++14 Rule A0-1-1 | Проект не должен содержать экземпляров энергонезависимых переменных с заданными значениями, которые впоследствии не используются. |
AUTOSAR C++14 Rule A0-1-2 | Должно использоваться значение, возвращаемое функцией, имеющей ненулевой тип возврата, которая не является перегруженным оператором. |
AUTOSAR C++14 Rule A0-1-3 | Должна использоваться каждая функция, определенная в анонимном пространстве имен, или статическая функция с внутренней связью, или частная функция-член. |
AUTOSAR C++14 Rule A0-1-4 | В невиртуальных функциях не должно быть неиспользуемых именованных параметров |
AUTOSAR C++14 Rule A0-1-5 | В наборе параметров для виртуальной функции и всех переопределяющих ее функций не должно быть неиспользуемых именованных параметров |
AUTOSAR C++14 Rule A0-1-6 | Не должно быть неиспользуемых описаний типов |
AUTOSAR C++14 Rule A0-4-2 | Тип длинный двойной не должен использоваться |
AUTOSAR C++14 Rule M0-1-1 | Проект не должен содержать недостижимый код |
AUTOSAR C++14 Rule M0-1-2 | Проект не должен содержать неосуществимых путей |
AUTOSAR C++14 Rule M0-1-3 | Проект не должен содержать неиспользуемые переменные |
AUTOSAR C++14 Rule M0-1-4 | Проект не должен содержать энергонезависимые переменные POD, имеющие только одно использование |
AUTOSAR C++14 Rule M0-1-9 | Не должно быть мертвого кода |
AUTOSAR C++14 Rule M0-1-10 | Каждая определенная функция должна вызываться по крайней мере один раз |
AUTOSAR C++14 Rule M0-2-1 | Объект не должен быть назначен перекрывающемуся объекту |
AUTOSAR C++14 Rule M0-3-2 | Если функция генерирует информацию об ошибке, то эта информация об ошибке должна быть проверена |
AUTOSAR C++14 Rule A1-1-1 | Весь код должен соответствовать ISO/IEC 14882:2014 - Язык программирования C++ и не должен использовать устаревшие функции |
AUTOSAR C++14 Rule A2-3-1 | В исходном коде должны использоваться только символы, указанные в базовом наборе исходных символов стандарта языка C++. |
AUTOSAR C++14 Rule A2-5-1 | Триграфы не должны использоваться |
AUTOSAR C++14 Rule A2-5-2 | Диграфы не должны использоваться |
AUTOSAR C++14 Rule A2-7-1 | Символ\не должен использоваться в качестве последнего символа комментария C++ |
AUTOSAR C++14 Rule A2-7-2 | Разделы кода не должны «комментироваться» |
AUTOSAR C++14 Rule A2-7-3 | Всем объявлениям «определяемых пользователем» типов, статических и нестатических элементов данных, функций и методов должна предшествовать документация |
AUTOSAR C++14 Rule A2-8-1 | Имя файла заголовка должно отражать логическую сущность, для которой оно предоставляет объявления. |
AUTOSAR C++14 Rule A2-8-2 | Имя файла реализации должно отражать логический объект, для которого оно предоставляет определения. |
AUTOSAR C++14 Rule A2-10-1 | Идентификатор, объявленный во внутренней области, не должен скрывать идентификатор, объявленный во внешней области |
AUTOSAR C++14 Rule A2-10-4 | Имя идентификатора объекта, не являющегося членом, со статической длительностью хранения или статической функцией не должно использоваться повторно в пространстве имен |
AUTOSAR C++14 Rule A2-10-5 | Имя идентификатора функции со статической длительностью хранения или объекта, не являющегося членом, с внешней или внутренней связью не должно использоваться повторно |
AUTOSAR C++14 Rule A2-10-6 | Имя класса или перечисления не должно скрываться объявлением переменной, функции или перечислителя в той же области |
AUTOSAR C++14 Rule A2-11-1 | Ключевое слово Volatile не должно использоваться |
AUTOSAR C++14 Rule A2-13-1 | Должны использоваться только те escape-последовательности, которые определены в ISO/IEC 14882:2014 |
AUTOSAR C++14 Rule A2-13-2 | Строковые литералы с различными префиксами кодирования не должны конкатенироваться |
AUTOSAR C++14 Rule A2-13-3 | Тип wchar_t не должен использоваться |
AUTOSAR C++14 Rule A2-13-4 | Строковые литералы не должны присваиваться непостоянным указателям |
AUTOSAR C++14 Rule A2-13-5 | Шестнадцатеричные константы должны быть в верхнем регистре |
AUTOSAR C++14 Rule A2-13-6 | Универсальные имена символов должны использоваться только внутри символьных или строковых литералов |
AUTOSAR C++14 Rule M2-7-1 | Последовательность символов/* не должна использоваться в комментарии в стиле Си |
AUTOSAR C++14 Rule M2-10-1 | Различные идентификаторы должны быть типографско однозначными |
AUTOSAR C++14 Rule M2-13-2 | Восьмеричные константы (отличные от нуля) и восьмеричные escape-последовательности (отличные от «\0 ») не должны использоваться |
AUTOSAR C++14 Rule M2-13-3 | Суффикс «U» применяется ко всем восьмеричным или шестнадцатеричным целочисленным литералам неподписанного типа |
AUTOSAR C++14 Rule M2-13-4 | Буквенные суффиксы должны быть в верхнем регистре |
AUTOSAR C++14 Rule A3-1-1 | Должна быть предусмотрена возможность включения любого файла заголовка в несколько единиц перевода без нарушения Правила единого определения |
AUTOSAR C++14 Rule A3-1-2 | Заголовочные файлы, определенные локально в проекте, должны иметь расширение имени одного из следующих файлов: .h, .hpp или .hxx |
AUTOSAR C++14 Rule A3-1-3 | Файлы реализации, определенные локально в проекте, должны иметь расширение имени файла. «cpp» |
AUTOSAR C++14 Rule A3-1-4 | При объявлении массива с внешней связью его размер должен быть указан явным образом |
AUTOSAR C++14 Rule A3-1-5 | Определение функции должно быть помещено в определение класса, только если (1) функция предназначена для встраивания (2) это шаблон функции-члена (3) это функция-член шаблона класса |
AUTOSAR C++14 Rule A3-1-6 | Тривиальные функции доступа и мутатора должны быть встроены |
AUTOSAR C++14 Rule A3-3-1 | Объекты или функции с внешней связью (включая элементы именованных пространств имен) должны быть объявлены в файле заголовка |
AUTOSAR C++14 Rule A3-3-2 | Статические и локальные объекты должны быть постоянно инициализированы |
AUTOSAR C++14 Rule A3-8-1 | Доступ к объекту вне срока его службы невозможен |
AUTOSAR C++14 Rule A3-9-1 | Вместо базовых числовых типов должны использоваться целочисленные типы с фиксированной шириной от < cstdint >, указывающие на размер и заметность |
AUTOSAR C++14 Rule M3-1-2 | Функции не должны объявляться в объеме блока |
AUTOSAR C++14 Rule M3-2-1 | Все объявления объекта или функции должны иметь совместимые типы |
AUTOSAR C++14 Rule M3-2-2 | Правило единого определения не должно нарушаться |
AUTOSAR C++14 Rule M3-2-3 | Тип, объект или функция, используемые в нескольких единицах перевода, должны быть объявлены в одном и только в одном файле |
AUTOSAR C++14 Rule M3-2-4 | Идентификатор с внешней связью должен иметь ровно одно определение |
AUTOSAR C++14 Rule M3-3-2 | Если функция имеет внутреннюю связь, то все повторные объявления должны включать спецификатор статического класса хранения |
AUTOSAR C++14 Rule M3-4-1 | Идентификатор, объявленный как объект или тип, должен быть определен в блоке, который минимизирует его видимость |
AUTOSAR C++14 Rule M3-9-1 | Типы, используемые для объекта, возвращаемого типа функции или параметра функции, должны быть token-for-token идентичными во всех объявлениях и повторных объявлениях. |
AUTOSAR C++14 Rule M3-9-3 | Базовые битовые представления значений с плавающей запятой не должны использоваться |
AUTOSAR C++14 Rule A4-5-1 | Выражения с типом enum или enum class не должны использоваться в качестве операндов для встроенных и перегруженных операторов, отличных от оператора подстрочного индекса [], оператора назначения =, операторов равенства = и! =, унарного & оператора и реляционных операторов <, < =, >, > = |
AUTOSAR C++14 Rule A4-10-1 | В качестве ограничения указателя NULL должен использоваться только литерал nullptr |
AUTOSAR C++14 Rule M4-5-1 | Выражения с типом bool не должны использоваться в качестве операндов для встроенных операторов, кроме оператора назначения =, логических операторов & &, |,!, операторов равенства = и! =, унарного & оператора и условного оператора |
AUTOSAR C++14 Rule M4-5-3 | Выражения с типом (равнина) случайная работа и wchar_t не должны использоваться в качестве операндов встроенным операторам кроме оператора назначения =, операторы равенства == и! =, и одноместное & оператор |
AUTOSAR C++14 Rule M4-10-1 | Значение NULL не должно использоваться в качестве целого числа |
AUTOSAR C++14 Rule M4-10-2 | Нулевой литерал (0) не должен использоваться в качестве константы нулевого указателя |
AUTOSAR C++14 Rule A5-0-1 | Значение выражения должно быть одинаковым при любом порядке оценки, который допускает стандарт |
AUTOSAR C++14 Rule A5-0-2 | Условие оператора if и условие оператора итерации должны иметь тип bool |
AUTOSAR C++14 Rule A5-0-3 | Объявление объектов должно содержать не более двух уровней косвенности указателя |
AUTOSAR C++14 Rule A5-0-4 | Указательная арифметика не должна использоваться с указателями на неокончательные классы |
AUTOSAR C++14 Rule A5-1-1 | Литеральные значения не должны использоваться отдельно от инициализации типа, в противном случае вместо них должны использоваться символьные имена |
AUTOSAR C++14 Rule A5-1-2 | Переменные не должны неявно захватываться в лямбда-выражении |
AUTOSAR C++14 Rule A5-1-3 | Список параметров (возможно, пустой) должен быть включен в каждое лямбда-выражение |
AUTOSAR C++14 Rule A5-1-4 | Объект лямбда-выражения не должен переживать ни один из своих объектов, захваченных ссылкой |
AUTOSAR C++14 Rule A5-1-6 | Следует явно указать возвращаемый тип лямбда-выражения, не являющегося void |
AUTOSAR C++14 Rule A5-1-7 | Лямбда не должна быть операндом для decltype или typeid |
AUTOSAR C++14 Rule A5-1-8 | Лямбда-выражения не должны определяться в другом лямбда-выражении |
AUTOSAR C++14 Rule A5-1-9 | Идентичные безымянные лямбда-выражения должны быть заменены именованной функцией или именованным лямбда-выражением |
AUTOSAR C++14 Rule A5-2-1 | dynamic_cast не должны использоваться |
AUTOSAR C++14 Rule A5-2-2 | Традиционные отливки В-образном исполнении не должны использоваться |
AUTOSAR C++14 Rule A5-2-3 | Отливка не должна исключать каких-либо противоречий или изменчивых квалификаций из типа указателя или ссылки |
AUTOSAR C++14 Rule A5-2-4 | reinterpret_cast не должны использоваться |
AUTOSAR C++14 Rule A5-2-6 | Операнды логического && или || должен быть заключен в скобки, если операнды содержат двоичные операторы |
AUTOSAR C++14 Rule A5-3-1 | Оценка операнда оператору типа не должна содержать побочных эффектов |
AUTOSAR C++14 Rule A5-3-2 | Нулевые указатели не должны быть удалены |
AUTOSAR C++14 Rule A5-3-3 | Указатели на неполные типы классов не удаляются |
AUTOSAR C++14 Rule A5-6-1 | Операнд правой стороны операторов целочисленного деления или остатка не должен быть равен нулю |
AUTOSAR C++14 Rule A5-10-1 | Указатель на виртуальную функцию-член должен проверяться только на равенство с константой нулевого указателя |
AUTOSAR C++14 Rule A5-16-1 | Троичный условный оператор не должен использоваться в качестве подэкспрессии |
AUTOSAR C++14 Rule M5-0-2 | Ограниченная зависимость от правил приоритета оператора C++ в выражениях |
AUTOSAR C++14 Rule M5-0-3 | Выражение cvalue не должно быть неявно преобразовано в другой базовый тип |
AUTOSAR C++14 Rule M5-0-4 | Неявное интегральное преобразование не должно изменять сигнатуру базового типа |
AUTOSAR C++14 Rule M5-0-5 | Не должно быть неявных плавающих-интегральных преобразований |
AUTOSAR C++14 Rule M5-0-6 | Неявное интегральное преобразование или преобразование с плавающей запятой не должно уменьшать размер базового типа |
AUTOSAR C++14 Rule M5-0-7 | Не должно быть явных плавающих-интегральных преобразований выражения значения |
AUTOSAR C++14 Rule M5-0-8 | Явное преобразование интеграла или с плавающей запятой не должно увеличивать размер базового типа выражения значения |
AUTOSAR C++14 Rule M5-0-9 | Явное интегральное преобразование не должно изменять сигнатуру базового типа выражения значения |
AUTOSAR C++14 Rule M5-0-10 | Если побитовые операторы ~ и < < применяются к операнду с нижележащим типом неподписанного символа или неподписанным коротким, результат немедленно приводится к нижележащему типу операнда. |
AUTOSAR C++14 Rule M5-0-11 | Тип простого символа должен использоваться только для хранения и использования символьных значений |
AUTOSAR C++14 Rule M5-0-12 | Подписанный символ и неподписанный тип символа должны использоваться только для хранения и использования числовых значений |
AUTOSAR C++14 Rule M5-0-14 | Первый операнд условного оператора должен иметь тип bool |
AUTOSAR C++14 Rule M5-0-15 | Индексация массива должна быть единственной формой арифметики указателя |
AUTOSAR C++14 Rule M5-0-16 | Операнд указателя и любой указатель, полученный в результате арифметики указателя с использованием этого операнда, должны адресовать элементы одного и того же массива. |
AUTOSAR C++14 Rule M5-0-17 | Вычитание между указателями должно применяться только к указателям, которые адресуют элементы одного и того же массива |
AUTOSAR C++14 Rule M5-0-18 | >, > =, <, < = не должны применяться к объектам типа указателя, за исключением случаев, когда они указывают на один и тот же массив |
AUTOSAR C++14 Rule M5-0-20 | Неконстантные операнды для двоичного побитового оператора должны иметь один и тот же базовый тип |
AUTOSAR C++14 Rule M5-0-21 | Побитовые операторы применяются только к операндам неподписанного базового типа |
AUTOSAR C++14 Rule M5-2-2 | Указатель на виртуальный базовый класс должен приводиться только к указателю на производный класс посредством dynamic_cast |
AUTOSAR C++14 Rule M5-2-3 | Слепки из базового класса в производный не должны выполняться для полиморфных типов |
AUTOSAR C++14 Rule M5-2-6 | Приведение не должно преобразовывать указатель на функцию в любой другой тип указателя, включая указатель на тип функции |
AUTOSAR C++14 Rule M5-2-8 | Объект с целым типом или указатель на тип void не должен преобразовываться в объект с типом указателя |
AUTOSAR C++14 Rule M5-2-9 | Приведение не должно преобразовывать тип указателя в интегральный тип |
AUTOSAR C++14 Rule M5-2-10 | Операторы инкремента (+ +) и декремента (--) не должны смешиваться с другими операторами в выражении |
AUTOSAR C++14 Rule M5-2-11 | Оператор запятой & & и оператор | | не должны перегружаться |
AUTOSAR C++14 Rule M5-2-12 | Идентификатор с типом массива, переданным в качестве аргумента функции, не должен затухать до указателя |
AUTOSAR C++14 Rule M5-3-1 | Каждый операнд из! оператор, логический & & или логический | | операторы должны иметь тип bool |
AUTOSAR C++14 Rule M5-3-2 | Оператор «унарный минус» не применяется к выражению, базовый тип которого не подписан |
AUTOSAR C++14 Rule M5-3-3 | Унарный и оператор не должны перегружаться |
AUTOSAR C++14 Rule M5-3-4 | Оценка операнда оператору размера не должна содержать побочных эффектов |
AUTOSAR C++14 Rule M5-8-1 | Операнд правой руки оператора сдвига должен лежать между нулем и единицей меньше ширины в битах нижележащего типа операнда левой руки |
AUTOSAR C++14 Rule M5-14-1 | Операнд правой руки логического оператора & &, | | не должен содержать побочных эффектов |
AUTOSAR C++14 Rule M5-18-1 | Оператор запятой не должен использоваться |
AUTOSAR C++14 Rule M5-19-1 | Оценка констант без знака целочисленных выражений не должна приводить к обходу |
AUTOSAR C++14 Rule A6-2-1 | Операторы назначения перемещения и копирования должны либо перемещать, либо соответственно копировать базовые классы и элементы данных класса без каких-либо побочных эффектов |
AUTOSAR C++14 Rule A6-2-2 | Операторы expression не должны быть явными вызовами только конструкторов временных объектов |
AUTOSAR C++14 Rule A6-4-1 | Оператор switch должен иметь не менее двух вариантов, отличных от метки по умолчанию |
AUTOSAR C++14 Rule A6-5-2 | Цикл для должен содержать один счетчик цикла, который не должен иметь тип с плавающей запятой |
AUTOSAR C++14 Rule A6-5-3 | Операторы Do не должны использоваться |
AUTOSAR C++14 Rule A6-5-4 | Оператор for-init и выражение не должны выполнять действия, отличные от инициализации и изменения счетчика циклов |
AUTOSAR C++14 Rule A6-6-1 | Оператор goto не должен использоваться |
AUTOSAR C++14 Rule M6-2-1 | Операторы назначения не должны использоваться в подвыражениях |
AUTOSAR C++14 Rule M6-2-2 | Выражения с плавающей запятой не должны быть прямо или косвенно проверены на равенство или неравенство |
AUTOSAR C++14 Rule M6-2-3 | Перед предварительной обработкой оператор null должен выполняться только в строке самостоятельно; за ним может следовать комментарий при условии, что первый символ, следующий за оператором null, является символом пробела |
AUTOSAR C++14 Rule M6-3-1 | Утверждение, образующее тело переключателя, в то время как, делать... в то время как или для оператора должно быть составным оператором |
AUTOSAR C++14 Rule M6-4-1 | За конструкцией if (условие) следует составная инструкция. За ключевым словом else следует либо составной оператор, либо другой оператор if |
AUTOSAR C++14 Rule M6-4-2 | Все, если... в противном случае, если конструкции должны быть прекращены с помощью пункта else |
AUTOSAR C++14 Rule M6-4-3 | Оператор переключения должен быть хорошо сформированным оператором переключения |
AUTOSAR C++14 Rule M6-4-4 | Метка switch должна использоваться только в том случае, если самым близким составным оператором является тело оператора switch. |
AUTOSAR C++14 Rule M6-4-5 | Безусловная инструкция throw or break должна завершать каждый непустой пункт switch-clause |
AUTOSAR C++14 Rule M6-4-6 | Последним пунктом заявления о переключении является пункт по умолчанию. |
AUTOSAR C++14 Rule M6-4-7 | Состояние оператора переключения не должно иметь тип bool |
AUTOSAR C++14 Rule M6-5-2 | Если счетчик цикла не изменяется на - или++, то в пределах условия счетчик цикла должен использоваться только в качестве операнда для < =, <, > или > = |
AUTOSAR C++14 Rule M6-5-3 | Счетчик контуров не должен изменяться в пределах условия или инструкции |
AUTOSAR C++14 Rule M6-5-4 | Счетчик контура должен быть изменен одним из: -, + +, - = n или + = n; где n остается постоянным в течение всего цикла |
AUTOSAR C++14 Rule M6-5-5 | Переменная управления контуром, отличная от счетчика контуров, не должна изменяться в пределах условия или выражения |
AUTOSAR C++14 Rule M6-5-6 | Переменная loop-control, отличная от счетчика loop-counter, измененного в операторе, должна иметь тип bool |
AUTOSAR C++14 Rule M6-6-1 | Любая метка, на которую ссылается оператор goto, должна быть объявлена в том же блоке или в блоке, включающем оператор goto. |
AUTOSAR C++14 Rule M6-6-2 | Оператор goto должен перейти к метке, объявленной позже в том же теле функции |
AUTOSAR C++14 Rule M6-6-3 | Оператор continue должен использоваться только в хорошо сформированном цикле для |
AUTOSAR C++14 Rule A7-1-1 | Спецификаторы Constexpr или const должны использоваться для объявления неизменяемых данных |
AUTOSAR C++14 Rule A7-1-2 | Спецификатор constexpr должен использоваться для значений, которые могут быть определены во время компиляции |
AUTOSAR C++14 Rule A7-1-3 | CV-квалификаторы должны размещаться справа от типа, который является typedef или using name |
AUTOSAR C++14 Rule A7-1-4 | Ключевое слово register не должно использоваться |
AUTOSAR C++14 Rule A7-1-5 | Автоспецификатор должен использоваться только в следующих случаях: (1) объявить, что переменная имеет тот же тип, что и возвращаемый тип вызова функции, (2) объявить, что переменная имеет тот же тип, что и инициализатор непринципиального типа, (3) объявить параметры обобщенного лямбда-выражения, (4) объявить шаблон функции, используя синтаксис завершающего возвращаемого типа |
AUTOSAR C++14 Rule A7-1-6 | Спецификатор typedef не должен использоваться |
AUTOSAR C++14 Rule A7-1-7 | Каждое выражение и объявление идентификатора помещаются в отдельную строку |
AUTOSAR C++14 Rule A7-1-8 | Перед спецификатором типа в объявлении должен быть установлен спецификатор, отличный от типа. |
AUTOSAR C++14 Rule A7-1-9 | Класс, структура или перечисление не должны объявляться в определении его типа |
AUTOSAR C++14 Rule A7-2-2 | Базовый тип перечисления должен быть определен явным образом |
AUTOSAR C++14 Rule A7-2-3 | Перечисления объявляются как классы перечисления в области |
AUTOSAR C++14 Rule A7-2-4 | При перечислении инициализируются либо (1) нет, (2) первый, либо (3) все счетчики. |
AUTOSAR C++14 Rule A7-3-1 | Все перегрузки функции должны быть видны из того места, где она называется |
AUTOSAR C++14 Rule A7-5-1 | Функция не должна возвращать ссылку или указатель на параметр, передаваемый ссылкой на const |
AUTOSAR C++14 Rule A7-5-2 | Функции не должны называть себя прямо или косвенно |
AUTOSAR C++14 Rule A7-6-1 | Функции, объявленные с атрибутом [[noreturn]], не возвращаются |
AUTOSAR C++14 Rule M7-1-2 | Указатель или ссылочный параметр в функции объявляется как указатель на конст или ссылка на конст, если соответствующий объект не изменен |
AUTOSAR C++14 Rule M7-3-1 | Глобальное пространство имен должно содержать только основные, объявления пространства имен и внешние объявления «C» |
AUTOSAR C++14 Rule M7-3-2 | Идентификатор main не должен использоваться для функции, отличной от глобальной функции main |
AUTOSAR C++14 Rule M7-3-3 | В файлах заголовков не должно быть безымянных пространств имен |
AUTOSAR C++14 Rule M7-3-4 | Использование директив не допускается |
AUTOSAR C++14 Rule M7-3-6 | Using-directives и using-declarations (исключая объявления об использовании области действия класса или функции) не должны использоваться в файлах заголовков |
AUTOSAR C++14 Rule A7-4-1 | Декларация асм не должна использоваться |
AUTOSAR C++14 Rule M7-4-2 | Инструкции по сборке должны вводиться только с использованием асм-декларации |
AUTOSAR C++14 Rule M7-4-3 | Язык сборки должен быть инкапсулирован и изолирован |
AUTOSAR C++14 Rule M7-5-1 | Функция не должна возвращать ссылку или указатель на автоматическую переменную (включая параметры), определенную в функции |
AUTOSAR C++14 Rule M7-5-2 | Адрес объекта с автоматическим хранением не должен присваиваться другому объекту, который может сохраняться после прекращения существования первого объекта |
AUTOSAR C++14 Rule A8-2-1 | При объявлении шаблонов функций используется синтаксис завершающего возвращаемого типа, если возвращаемый тип зависит от типа параметров. |
AUTOSAR C++14 Rule A8-4-1 | Функции не должны определяться с помощью многоточия |
AUTOSAR C++14 Rule A8-4-2 | Все пути выхода из функции с типом возврата non-void должны иметь явную инструкцию return с выражением |
AUTOSAR C++14 Rule A8-4-4 | Несколько выходных значений функции должны быть возвращены как структура или кортеж |
AUTOSAR C++14 Rule A8-4-5 | Параметры «потребления», объявленные как X & &, всегда должны быть перемещены из |
AUTOSAR C++14 Rule A8-4-6 | параметры «forward», объявленные как T & & &, всегда должны пересылаться |
AUTOSAR C++14 Rule A8-4-7 | параметры «in» для типов «дешево копировать» передаются по значению |
AUTOSAR C++14 Rule A8-4-8 | Выходные параметры не должны использоваться |
AUTOSAR C++14 Rule A8-4-9 | параметры «in-out», объявленные как T &, должны быть изменены |
AUTOSAR C++14 Rule A8-4-10 | Параметр должен передаваться по ссылке, если он не может быть NULL |
AUTOSAR C++14 Rule A8-4-14 | Интерфейсы должны быть точно и строго типизированы |
AUTOSAR C++14 Rule A8-5-0 | Вся память должна быть инициализирована перед прочтением |
AUTOSAR C++14 Rule A8-5-1 | В списке инициализации порядок инициализации должен быть следующим: (1) виртуальные базовые классы в глубине и слева направо графа наследования, (2) прямые базовые классы в порядке слева направо списка наследования, (3) нестатические элементы данных в порядке их объявления в определении класса. |
AUTOSAR C++14 Rule A8-5-2 | {} без знака равенства используется для инициализации переменной |
AUTOSAR C++14 Rule A8-5-4 | Если класс имеет объявленный пользователем конструктор, который принимает параметр типа std::initializer_list, то он должен быть единственным конструктором, кроме конструкторов специальных функций-членов |
AUTOSAR C++14 Rule A8-5-3 | Переменная типа auto не должна инициализироваться с помощью {} или = {} baced-initialization |
AUTOSAR C++14 Rule M8-0-1 | init-declarator-list или member-declarator-list должен состоять из одного init-declarator или member-declarator соответственно. |
AUTOSAR C++14 Rule M8-3-1 | Параметры переопределяющей виртуальной функции должны либо использовать те же аргументы по умолчанию, что и функция, которую они переопределяют, либо не должны указывать никакие аргументы по умолчанию. |
AUTOSAR C++14 Rule M8-4-2 | Идентификаторы, используемые для параметров в повторном объявлении функции, должны быть идентичны идентификаторам в объявлении |
AUTOSAR C++14 Rule M8-4-4 | Идентификатор функции должен использоваться либо для вызова функции, либо ему должен предшествовать & |
AUTOSAR C++14 Rule M8-5-2 | Фигурные скобки должны использоваться для указания и согласования структуры при ненулевой инициализации массивов и структур |
AUTOSAR C++14 Rule A9-3-1 | Функции-члены не должны возвращать неконстовые «необработанные» указатели или ссылки на частные или защищенные данные, принадлежащие классу |
AUTOSAR C++14 Rule A9-5-1 | Профсоюзы не должны использоваться |
AUTOSAR C++14 Rule A9-6-1 | Типы данных, используемые для сопряжения с аппаратными средствами или в соответствии с протоколами связи, должны быть тривиальными, стандартными и содержать только элементы типов с определенными размерами |
AUTOSAR C++14 Rule M9-3-1 | Функции-члены Const не должны возвращать указатели non-const или ссылки на данные класса |
AUTOSAR C++14 Rule M9-3-3 | Если функция элемента может быть сделана статичной, то она должна быть сделана статичной, в противном случае, если она может быть сделана const, то она должна быть сделана const |
AUTOSAR C++14 Rule M9-6-4 | Именованные битовые поля со знаком целочисленного типа должны иметь длину более одного бита |
AUTOSAR C++14 Rule A10-1-1 | Класс не должен быть производным от более чем одного базового класса, который не является классом интерфейса |
AUTOSAR C++14 Rule A10-2-1 | Невиртуальные общедоступные или защищенные функции-члены не должны переопределяться в производных классах |
AUTOSAR C++14 Rule A10-3-1 | Объявление виртуальной функции должно содержать точно один из трех спецификаторов: (1) виртуальный, (2) переопределение, (3) окончательный |
AUTOSAR C++14 Rule A10-3-2 | Каждая переопределяющая виртуальная функция должна быть объявлена с переопределением или конечным спецификатором |
AUTOSAR C++14 Rule A10-3-3 | Виртуальные функции не должны вводиться в окончательный класс |
AUTOSAR C++14 Rule A10-3-5 | Определяемый пользователем оператор назначения не должен быть виртуальным |
AUTOSAR C++14 Rule M10-1-1 | Классы не должны быть производными от виртуальных баз |
AUTOSAR C++14 Rule M10-1-2 | Базовый класс объявляется виртуальным только в том случае, если он используется в алмазной иерархии |
AUTOSAR C++14 Rule M10-1-3 | Доступный базовый класс не должен быть одновременно виртуальным и невиртуальным в одной иерархии |
AUTOSAR C++14 Rule M10-2-1 | Все доступные имена сущностей в иерархии множественного наследования должны быть уникальными |
AUTOSAR C++14 Rule M10-3-3 | Виртуальная функция должна быть переопределена только чистой виртуальной функцией, если она сама объявлена чистой виртуальной |
AUTOSAR C++14 Rule A11-0-1 | Тип не-POD должен быть определен как класс |
AUTOSAR C++14 Rule A11-0-2 | Тип, определяемый как struct, должен: (1) предоставлять только элементы открытых данных, (2) не предоставлять какие-либо специальные функции или методы, (3) не быть базой другой структуры или класса, (4) не наследовать от другой структуры или класса |
AUTOSAR C++14 Rule A11-3-1 | Объявления друзей не должны использоваться |
AUTOSAR C++14 Rule M11-0-1 | Данные элемента в типах классов, не относящихся к POD, должны быть закрытыми |
AUTOSAR C++14 Rule A12-0-1 | Если класс объявляет операцию копирования или перемещения или деструктор с помощью «= default», «= delete» или с помощью описания, предоставленного пользователем, то также должны быть объявлены все остальные из этих пяти специальных функций-членов. |
AUTOSAR C++14 Rule A12-0-2 | Побитовые операции и операции, предполагающие представление данных в памяти, не должны выполняться на объектах |
AUTOSAR C++14 Rule A12-1-1 | Конструкторы должны явно инициализировать все виртуальные базовые классы, все прямые невиртуальные базовые классы и все нестатические элементы данных |
AUTOSAR C++14 Rule A12-1-2 | Как NSDMI, так и нестатический инициализатор элемента в конструкторе не должны использоваться в одном типе |
AUTOSAR C++14 Rule A12-1-4 | Все конструкторы, вызываемые одним аргументом фундаментального типа, объявляются явными |
AUTOSAR C++14 Rule A12-1-6 | Производные классы, которые не нуждаются в дальнейшей явной инициализации и требуют все конструкторы из базового класса, должны использовать наследующие конструкторы |
AUTOSAR C++14 Rule A12-4-1 | Деструктор базового класса должен быть общедоступным виртуальным, общедоступным переопределением или защищенным невиртуальным |
AUTOSAR C++14 Rule A12-4-2 | Если публичный деструктор класса не является виртуальным, то класс должен быть объявлен окончательным |
AUTOSAR C++14 Rule A12-6-1 | Все элементы данных класса, инициализированные конструктором, должны быть инициализированы с помощью инициализаторов элементов |
AUTOSAR C++14 Rule A12-8-1 | Конструкторы перемещения и копирования должны перемещать и соответственно копировать базовые классы и элементы данных класса, без каких-либо побочных эффектов |
AUTOSAR C++14 Rule A12-8-2 | Определяемые пользователем операторы назначения копирования и перемещения должны использовать определяемую пользователем функцию без замены |
AUTOSAR C++14 Rule A12-8-3 | Объект Moved-from не должен быть доступен для чтения |
AUTOSAR C++14 Rule A12-8-4 | Конструктор Move не должен инициализировать элементы класса и базовые классы с помощью семантики копирования |
AUTOSAR C++14 Rule A12-8-5 | Операторы назначения копирования и перемещения должны обрабатывать самостоятельное назначение |
AUTOSAR C++14 Rule A12-8-6 | Конструкторы копирования и перемещения и операторы назначения копирования и перемещения должны быть объявлены защищенными или определены как «= delete» в базовом классе |
AUTOSAR C++14 Rule A12-8-7 | Операторы назначения должны быть объявлены с помощью ссылочного квалификатора & |
AUTOSAR C++14 Rule M12-1-1 | Динамический тип объекта не должен использоваться из тела его конструктора или деструктора |
AUTOSAR C++14 Rule A13-1-2 | Определяемые пользователем суффиксы определяемых пользователем буквенных операторов должны начинаться с подчеркивания, за которым следует одна или несколько букв |
AUTOSAR C++14 Rule A13-2-1 | Оператор назначения возвращает ссылку на «это» |
AUTOSAR C++14 Rule A13-2-3 | Реляционный оператор возвращает логическое значение |
AUTOSAR C++14 Rule A13-5-1 | Если «оператор []» должен быть перегружен версией, отличной от const, также должна быть реализована версия const |
AUTOSAR C++14 Rule A13-5-2 | Все определяемые пользователем операторы преобразования должны быть определены явным образом |
AUTOSAR C++14 Rule A13-5-3 | Определяемые пользователем операторы преобразования не должны использоваться |
AUTOSAR C++14 Rule A13-5-5 | Операторы сравнения должны быть не являющимися членами функциями с идентичными типами параметров и noexcept |
AUTOSAR C++14 Rule A13-6-1 | Разделители последовательностей цифр должны использоваться только следующим образом: (1) для десятичных разрядов, каждые 3 разряда, (2) для шестнадцатеричных разрядов, каждые 2 разряда, (3) для двоичных разрядов, каждые 4 разряда |
AUTOSAR C++14 Rule A14-5-2 | Элементы класса, не зависящие от параметров класса шаблона, должны быть определены в отдельном базовом классе |
AUTOSAR C++14 Rule A14-5-3 | Универсальный оператор, не являющийся членом, должен быть объявлен только в пространстве имен, которое не содержит объявлений типа класса (struct), типа перечисления или типа объединения. |
AUTOSAR C++14 Rule A14-7-2 | Специализация шаблона должна быть объявлена в том же файле (1), что и основной шаблон (2), как определяемый пользователем тип, для которого объявлена специализация |
AUTOSAR C++14 Rule A14-8-2 | Явные специализации шаблонов функций не должны использоваться |
AUTOSAR C++14 Rule M14-5-3 | Оператор присвоения копии объявляется при наличии оператора назначения шаблона с параметром, являющимся универсальным параметром |
AUTOSAR C++14 Rule M14-6-1 | В шаблоне класса с зависимой базой любое имя, которое может быть найдено в этой зависимой базе, должно упоминаться с использованием квалифицированного идентификатора или this- > |
AUTOSAR C++14 Rule A15-1-1 | Следует создать исключение только для экземпляров типов, производных от std:: |
AUTOSAR C++14 Rule A15-1-2 | Объект исключения не должен быть указателем |
AUTOSAR C++14 Rule A15-1-3 | Все создаваемые исключения должны быть уникальными |
AUTOSAR C++14 Rule A15-2-1 | Конструкторы, не являющиеся noexcept, не должны вызываться перед запуском программы |
AUTOSAR C++14 Rule A15-3-3 | Основная функция и основная функция задачи должны улавливать, по крайней мере: исключения базового класса из всех используемых сторонних библиотек, std:: исключение и все необработанные исключения |
AUTOSAR C++14 Rule A15-3-4 | Обработчики catch-all (многоточие и std:: исключение) должны использоваться только в (a) основных, (b) основных функциях задачи, (c) в функциях, которые должны изолировать независимые компоненты и (d) при вызове стороннего кода, использующего исключения, не соответствующие рекомендациям AUTOSAR C++ 14 |
AUTOSAR C++14 Rule A15-3-5 | Исключение типа класса должно восприниматься по ссылке или условной ссылке |
AUTOSAR C++14 Rule A15-4-1 | Динамическое исключение - спецификация не должна использоваться |
AUTOSAR C++14 Rule A15-4-2 | Если функция объявлена как noexcept, noexcept (истина) или noexcept (< истинное условие >), то она не должна выходить за исключением |
AUTOSAR C++14 Rule A15-4-3 | Спецификация noexcept функции должна быть либо идентичной для всех единиц преобразования, либо идентичной или более ограничительной между функцией виртуального члена и переопределителем |
AUTOSAR C++14 Rule A15-4-4 | Объявление функции отсутствия метания должно содержать технические условия noexcept |
AUTOSAR C++14 Rule A15-5-1 | Все предоставленные пользователем деструкторы классов, функции освобождения, конструкторы перемещений, операторы назначения перемещений и функции подкачки не должны выходить за исключением. К этим функциям, в зависимости от обстоятельств, должна быть добавлена спецификация исключения noexcept |
AUTOSAR C++14 Rule A15-5-3 | Функция std:: terminate () не должна вызываться неявно |
AUTOSAR C++14 Rule M15-0-3 | Управление не должно передаваться в блок try или catch с помощью оператора goto или switch |
AUTOSAR C++14 Rule M15-1-1 | Назначение-выражение оператора throw не должно само по себе вызывать исключение |
AUTOSAR C++14 Rule M15-1-2 | Значение NULL не должно передаваться явным образом |
AUTOSAR C++14 Rule M15-1-3 | Пустой бросок (бросок;) должен использоваться только в составном заявлении обработчика улова |
AUTOSAR C++14 Rule M15-3-1 | Исключения должны быть созданы только после запуска и до прекращения |
AUTOSAR C++14 Rule M15-3-3 | Обработчики реализации function-try-block конструктора класса или деструктора не должны ссылаться на нестатические элементы из этого класса или его баз |
AUTOSAR C++14 Rule M15-3-4 | Каждое исключение, явно созданное в коде, должно иметь обработчик совместимого типа во всех путях вызова, который может привести к этой точке |
AUTOSAR C++14 Rule M15-3-6 | Если в одной инструкции try-catch или function-try-block предусмотрено несколько обработчиков для производного класса и некоторых или всех его баз, обработчики должны быть упорядочены наиболее производными для базового класса. |
AUTOSAR C++14 Rule M15-3-7 | Если в одной инструкции try-catch или function-try-block предусмотрено несколько обработчиков, любой обработчик многоточия (catch-all) должен быть последним |
AUTOSAR C++14 Rule A16-0-1 | Препроцессор должен использоваться только для безусловного и условного включения файлов и включать защитные устройства, а также использовать специальные директивы |
AUTOSAR C++14 Rule A16-2-1 | Символы ', ",/* ,/,\не должны присутствовать в имени файла заголовка или в директиве # include |
AUTOSAR C++14 Rule A16-6-1 | Директива # error не должна использоваться |
AUTOSAR C++14 Rule A16-7-1 | Директива # pragma не должна использоваться |
AUTOSAR C++14 Rule M16-0-1 | # include directions в файле должны предшествовать только другие предпроцессорные директивы или комментарии |
AUTOSAR C++14 Rule M16-0-2 | Макросы должны быть только # define 'd или # undef' d в глобальном пространстве имен |
AUTOSAR C++14 Rule M16-0-5 | Аргументы в функциональном макросе не должны содержать маркеры, похожие на директивы предварительной обработки |
AUTOSAR C++14 Rule M16-0-6 | В определении функционального макроса каждый экземпляр параметра должен быть заключен в круглые скобки, если только он не используется в качестве операнда # или # # |
AUTOSAR C++14 Rule M16-0-7 | Неопределенные идентификаторы макросов не должны использоваться в директивах предпроцессора # if или # elif, за исключением операндов для определенного оператора |
AUTOSAR C++14 Rule M16-0-8 | Если маркер # появляется как первый маркер в строке, за ним немедленно следует маркер предварительной обработки. |
AUTOSAR C++14 Rule M16-1-1 | Определенный оператор предпроцессора должен использоваться только в одной из двух стандартных форм |
AUTOSAR C++14 Rule M16-1-2 | Все директивы # ely, # elif и # endif pre-processor должны находиться в том же файле, что и директива # if или # ifdef, с которой они связаны. |
AUTOSAR C++14 Rule M16-2-3 | Должны быть предусмотрены защитные устройства |
AUTOSAR C++14 Rule M16-3-1 | В одном определении макроса должно быть не более одного вхождения операторов # или # # |
AUTOSAR C++14 Rule M16-3-2 | Операторы # и # # не должны использоваться |
AUTOSAR C++14 Rule A17-0-1 | Зарезервированные идентификаторы, макросы и функции в стандартной библиотеке C++ не должны быть определены, переопределены или не определены |
AUTOSAR C++14 Rule A17-6-1 | Нестандартные объекты не должны добавляться в стандартные пространства имен |
AUTOSAR C++14 Rule M17-0-2 | Имена стандартных библиотечных макросов и объектов не должны использоваться повторно |
AUTOSAR C++14 Rule M17-0-3 | Названия стандартных библиотечных функций не должны быть переопределены |
AUTOSAR C++14 Rule M17-0-5 | Макрос setjmp и функция longjmp не должны использоваться |
AUTOSAR C++14 Rule A18-0-1 | Доступ к библиотекам C осуществляется только через заголовки библиотек C++ |
AUTOSAR C++14 Rule A18-0-2 | Проверяется состояние ошибки преобразования строки в числовое значение |
AUTOSAR C++14 Rule A18-0-3 | Библиотека < clocale > (locale.h) и функция setlocale не должны использоваться |
AUTOSAR C++14 Rule A18-1-1 | Массивы в стиле C не должны использоваться |
AUTOSAR C++14 Rule A18-1-2 | Специализация std:: vector < bool > не должна использоваться |
AUTOSAR C++14 Rule A18-1-3 | Использование std::auto_ptr не допускается |
AUTOSAR C++14 Rule A18-1-6 | Все специализации std:: hash для определяемых пользователем типов должны иметь оператор вызова функции noexcept |
AUTOSAR C++14 Rule A18-5-1 | Функции malloc, calloc, realloc и free не должны использоваться |
AUTOSAR C++14 Rule A18-5-2 | Использование новых или удаленных выражений при неразмещении не допускается |
AUTOSAR C++14 Rule A18-5-3 | Форма оператора удаления должна соответствовать форме нового оператора, используемого для выделения памяти |
AUTOSAR C++14 Rule A18-5-4 | Если проект имеет размерную или неразмерную версию оператора «удалить», определенную глобально, то должны быть определены как размерная, так и неразмерная версии |
AUTOSAR C++14 Rule A18-5-9 | Пользовательские реализации функций динамического выделения и освобождения памяти должны отвечать семантическим требованиям, указанным в соответствующем пункте «Требуемое поведение» стандарта C++ |
AUTOSAR C++14 Rule A18-5-10 | Новое размещение должно использоваться только с правильно выровненными указателями для достаточной емкости хранения |
AUTOSAR C++14 Rule A18-5-11 | «оператор new» и «оператор delete» определяются вместе |
AUTOSAR C++14 Rule A18-9-1 | Не следует использовать std:: bind |
AUTOSAR C++14 Rule A18-9-2 | Пересылка значений другим функциям должна осуществляться через: (1) std:: move, если значение является ссылкой на значение rvalue, (2) std:: forward, если значение является ссылкой на пересылку |
AUTOSAR C++14 Rule A18-9-3 | std:: Перемещение не должно использоваться на объектах, объявленных const или const & |
AUTOSAR C++14 Rule A18-9-4 | Аргумент std:: forward не должен использоваться впоследствии |
AUTOSAR C++14 Rule M18-0-3 | Функции библиотеки прерывание, выход, getenv и система из библиотеки < cstdlib > не должны использоваться |
AUTOSAR C++14 Rule M18-0-4 | Функции обработки времени библиотеки < ctime > не должны использоваться |
AUTOSAR C++14 Rule M18-0-5 | Неограниченные функции библиотеки < cstring > не должны использоваться |
AUTOSAR C++14 Rule M18-2-1 | Макро смещение не должно использоваться |
AUTOSAR C++14 Rule M18-7-1 | Средства обработки сигналов < csignal > не должны использоваться |
AUTOSAR C++14 Rule M19-3-1 | Индикатор ошибки errno не должен использоваться |
AUTOSAR C++14 Rule A20-8-1 | Уже принадлежащее значение указателя не должно храниться в несвязанном интеллектуальном указателе |
AUTOSAR C++14 Rule A20-8-2 | Для представления исключительного права собственности используется std::unique_ptr |
AUTOSAR C++14 Rule A20-8-3 | Для представления долевой собственности используется std::shared_ptr |
AUTOSAR C++14 Rule A20-8-5 | std::make_unique должны использоваться для строительства объектов, принадлежащих std::unique_ptr |
AUTOSAR C++14 Rule A20-8-6 | std::make_shared должны использоваться для строительства объектов, принадлежащих std::shared_ptr |
AUTOSAR C++14 Rule A21-8-1 | Аргументы для функций обработки символов должны быть представлены как неподписанный символ |
AUTOSAR C++14 Rule A23-0-1 | Итератор не должен быть неявно преобразован в const_iterator |
AUTOSAR C++14 Rule A26-5-1 | Псевдослучайные числа не должны генерироваться с помощью std:: rand () |
AUTOSAR C++14 Rule A26-5-2 | Механизмы случайных чисел не должны инициализироваться по умолчанию |
AUTOSAR C++14 Rule A27-0-2 | Строка в стиле C должна гарантировать достаточное пространство для данных и нулевого терминатора |
AUTOSAR C++14 Rule A27-0-3 | Альтернативные операции ввода и вывода для потока файлов не должны использоваться без промежуточного вызова очистки или позиционирования |
AUTOSAR C++14 Rule A27-0-4 | Не должны использоваться строки в стиле C |
AUTOSAR C++14 Rule M27-0-1 | Библиотека ввода/вывода потока < cstdio > не должна использоваться |
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.