Почему мы должны напрямую включать заголовок, объявляющий символ?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
Ответить

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

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

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

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

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