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