AUTOSAR C++14 Rule A2-8-1

Имя заголовочного файла должно отразить логическую сущность, для которой оно обеспечивает объявления.

Описание

Управляйте определением

Имя заголовочного файла должно отразить логическую сущность, для которой оно обеспечивает объявления.

Объяснение

Имя заголовочного файла, которое совпадает с именем сущности, которая объявляется в том файле, делает ваш #include более ясные директивы и ваш более читаемый код.

Реализация Polyspace

Polyspace® проверяет имя заголовочного файла по имени соответствующих заявленных типов, таких как class или struct, или namespace имена. Если имена не соответствуют, Polyspace отмечает первый символ на первой линии заголовочного файла.

  • Сравнение имени является нечувствительным к регистру. Например, myheader соответствия myHeader.

  • Сравнение имени игнорирует:

    • Символ подчеркивания '_'. Например, myheader соответствия my_Header.

    • Символы префикса 'CMT', или суффиксный символьный 'T'. Сравнение игнорирует или префиксные или суффиксные символы, но не обоих. Например, myheader соответствия CmyHeader и myHeader_T, но не CmyHeader_T.

    • Символ дефиса '-'в именах файлов. Например, файл с именем my-header.h совпадает с struct названный _myHeader.

Поиск и устранение проблем

Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.

Примеры

развернуть все

myheader.h

#include <memory> //Non-compliant
#include <string>

class myClass
{
	virtual ~mysClass()=default;
};

class Player : public myClass
{
	std::string Name;
	int Rank;
};

file.cpp

#include "myheader.h"

int main(){
  return 0;
}

В этом примере, имени заголовочного файла myheader.h несовместимо, потому что это не совпадает с именем базового класса (myClass) объявленный в том заголовочном файле.

Проверяйте информацию

Группа: Лексические соглашения
Категория: необходимый, неавтоматизированный
Введенный в R2021a