Почему мы должны напрямую включать заголовок, объявляющий символ?C++

Программы на C++. Форум разработчиков
Anonymous
Почему мы должны напрямую включать заголовок, объявляющий символ?

Сообщение Anonymous »

Я использую clang-tidy v20.0 для статического анализа, и у меня возникли проблемы с проверкой misc-include-cleaner. В каждом исходном файле я получаю предупреждение из-за непрямого включения заголовков.
Например, при использовании структуры timeval я включаю но на самом деле он определен в , который включен в . clang-tidy в этом случае показывает два предупреждения.

включенный заголовок time.h не используется напрямую [misc-include-cleaner]


ни один заголовок, предоставляющий «timeval», не включен напрямую [misc-include-cleaner]

Я знаю, что отключение такая проверка возможна, но я не уверен, что это правильное решение.

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

Checks:
- "*"
- "-misc-include-cleaner"
В других случаях я пытался отключить предупреждения для определенных заголовков, но проблемы усугублялись.

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

# Allow in-directly including some headers as they are included by other headers
# For instance,  is deprecated in C++ and can be replaced with 
# However, including  doesn't satisfy this check
- key: misc-include-cleaner.IgnoreHeaders
value: string.h;struct_timeval.h
Итак, стоит ли отключить эту проверку, чтобы не злиться, или исправить все связанные с ней предупреждения? Я не уверен, насколько это полезно.

Подробнее здесь: https://stackoverflow.com/questions/793 ... g-a-symbol

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