AUTOSAR C++14 Rule A2-8-2

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

Описание

Определение правила

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

Объяснение

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

Реализация Polyspace

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

  • Сравнение имен нечувствительно к регистру. Для образца, myclass соответствует myClass.

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

    • Символ подчеркивания '_'. Для образца, myclass соответствует my_Class.

    • Символы префикса 'CMT', или суффиксный символ' T'. Сравнение игнорирует символы префикса или суффикса, но не то и другое одновременно. Для образца, myclass соответствует CmyClass и myClass_T, но не CmyClass_T.

    • Символ дефиса '-'в именах файлов. Например, файл с именем my-class.cpp соответствует class именованные myClass_.

Polyspace не проверяет файл, где вы реализуете main().

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

Если вы ожидаете нарушения правил, но не видите его, обратитесь к разделу «Стандартные нарушения кодирования не отображаются».

Примеры

расширить все

username.h

#include <string>

class User
{
public:
	User();
    User(std::string s);
    std::string getUser();

private:
    std::string user;
};

username.cpp

#include "username.h" // Non-compliant

User::User() : user("") { }
User::User(std::string s): user(s) {}
std::string User::getUser()
{
	return user;
}

В примере is имя файла реализации username.cpp не соответствует, потому что не совпадает с именем класса (User), заданный в этом файле.

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

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