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