Clang -Tidy - не всегда сообщает ненициализированных членовC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Clang -Tidy - не всегда сообщает ненициализированных членов

Сообщение Anonymous »

Вот мой .clang-tidy: < /p>

Код: Выделить всё

Checks: >
clang-analyzer-*,
bugprone-*,
cppcoreguidelines-*,
misc-*,
performance-*,
portability-*,
cert-*,
-fuchsia-*,
-llvm-header-guard,
-hicpp-*,
-google-*
CheckOptions:
- key: cppcoreguidelines-pro-type-member-init.IgnorePOD
value: false
- key: cppcoreguidelines-pro-type-member-init.IgnoreArrays
value: false
WarningsAsErrors: ''
HeaderFilterRegex: '.*'
AnalyzeTemporaryDtors: false
FormatStyle: file
enter code here
Это правильно сообщает мне, что конструктор не инициализирует эти поля: school_type, expiry_time, synsed. Для следующего кода:
struct GlobalCooldown
{
SchoolType school_type;
double expiry_time;
bool synced;
bool expired = false;
};
< /code>
Однако он не поймает и не сообщает здесь не инициализированные поля: < /p>
struct ProcData {
ProcFlags flags;
uint32 cast_id;
uint32 spell_id;
uint64 caster_guid;
uint64 target_guid;

[[nodiscard]] bool HasProcFlag(ProcFlags flag) const
{
return (static_cast(flags) & static_cast(flag)) != 0;
}
void SetProcFlag(ProcFlags flag)
{
flags |= flag;
}

void ClearProcFlag(ProcFlags flag)
{
flags = static_cast(static_cast(flags) & ~static_cast(flag));
}

void ClearAllProcFlags()
{
flags = static_cast(0);
}
};
< /code>
Так почему это, могу ли я обнаружить все не инициализированные участники?>

Подробнее здесь: https://stackoverflow.com/questions/796 ... ed-members
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»