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