Определение функции должно быть помещено в определение класса, только если (1) функция предназначена для встраивания (2) это шаблон функции-члена (3) это функция-член шаблона класса
Определение функции должно быть помещено в определение класса только в том случае, если (1) функция должна быть встроена (2) она является шаблоном функции-члена (3) она является функцией-членом шаблона класса.
Размещение определения функции в определении класса допускается только в том случае, если:
Функция должна быть встроена. Размещение определения функции-члена в определении класса предписывает компилятору встроить функцию-член. Встраивание небольших функций позволяет избежать накладных расходов на выполнение вызовов функций и повысить производительность скомпилированного исполняемого файла. Но если поместить определение большой функции-члена в определение класса, не зная об этой неявной вложенности, скомпилированный исполняемый файл может быть слишком большим.
Функция является шаблоном функции-члена или элементом шаблона класса. Эти методы кодирования уменьшают повторы элементов синтаксиса шаблона (например, списка параметров). Это уменьшение улучшает удобочитаемость и ремонтопригодность кода.
Проверка использует эвристику, которая, если вы явно не используете inline ключевое слово, предполагается встроить только небольшие функции, состоящие не более чем из одного оператора. Средство проверки интерпретирует A3-1-5 правил AUTOSAR C++ 14 следующим образом.
Для функций элементов, не являющихся шаблонами, и функций элементов классов, не являющихся шаблонами, средство проверки помечает однолинейные функции элементов, определенные вне класса, и более крупные функции элементов, определенные внутри класса.
Для функций-членов шаблона и функций-членов классов-шаблонов средство проверки помечает любую функцию-член, определенную вне класса.
Если вы ожидаете нарушения правила, но не видите его, обратитесь к разделу Нарушения стандартов кодирования не отображаются.
| Группа: Основные понятия |
| Категория: Обязательный, частично автоматизированный |