Каков наилучший способ ограничить использование определенных заголовков (функций самой библиотеки) в определенных файлах Cpp. И если он не соблюдает установленные правила, компиляция должна прекратиться.
Речь идет не об обнаружении лишних включений. Речь идет о том, чтобы ограничить разработчиков рамкой applicaiton.
Например, если существует класс osUtils как osUtils.h, и если в соответствии с этим, эта среда разработки приложения требует использования osUtils.h для работы файловой системы, например, для создания папки. но всегда есть шанс, что индивидуальный модуль найдет удобство для нарушения этого правила, включив sys/stat и используя метод mkdir(). Но если намерение предоставить инфраструктуру здесь позволяет говорить о кросс-платформенной абстракции или специальной логике обработки пути, цель теряется, выполняя ее вне рамки. Есть ли способ ограничить это? например, ограничение использования sys/stat.h в определенных файлах (кроме файла osUtils.h в этом случае) может помочь решить проблему. но как реализовать его, чтобы он не скомпилировался, если правило нарушено.Ограничение заголовков заголовков в C++
-1
A
ответ
0
Я не знаю, как это сделать, нарушая компиляцию - идея сбоя компиляции из-за действительного кода не обращается ко мне. У меня есть некоторые другие идеи:
- Код обзора. Если все сделано правильно, это должно предотвратить такие ошибки.
- Я уверен, что некоторые статического анализа кода может помочь обнаружить эти вещи (они могут проверить такие вещи, как «включают в себя то, что вы используете», поэтому правило «не включают„XYZ“должен быть там)
- Если у вас есть готовый инструмент статического анализа, есть проблема с тем, чтобы люди использовали его и исправляли ошибки, показанные им. Один из вариантов, который вы можете использовать, - git hook. Если новый код не проходит статический анализ - отклоните фиксацию. Если вы не можете использовать крючки или не хотите - выполните отдельное задание CI, которое будет проверять нарушения статической проверки. Затем вы увидите, кто и когда толкнул какой-то плохой код.
Смежные вопросы
- 1. Файлы заголовков в C
- 2. Исправлена видимость заголовков заголовков
- 3. Добавление заголовков HTTP-заголовков
- 4. Исправлено влияние заголовков заголовков
- 5. Включение заголовков заголовков/декларация переадресации
- 6. Зависимости заголовков C++
- 7. Вложения заголовков C++
- 8. Зависимости файлов заголовков C
- 9. Организация файлов заголовков C++
- 10. Разница заголовков C++
- 11. Включая файлы заголовков C++
- 12. Редактировать поля исходящих заголовков HTTP-заголовков в C#
- 13. Включая файлы заголовков в C
- 14. Разбор HTTP-заголовков в C++
- 15. Изменение заголовков JPEG в C#
- 16. Использование файлов заголовков в C
- 17. Связывание файлов/заголовков в C
- 18. Определение файлов заголовков в C++
- 19. Подсказка для текста/заголовков/заголовков в iReports
- 20. PHP-перенаправление с использованием заголовков заголовков заголовков() и HTTP-запросов
- 21. Компиляция нескольких файлов заголовков C и заголовков с 1 основным
- 22. Создание заголовков заголовков с использованием iText
- 23. Как создать несколько заголовков заголовков TableView?
- 24. Как увеличить переменную для подсчета заголовков, заголовков?
- 25. Google Cloud Messaging Ошибка импорта заголовков заголовков
- 26. сделать несколько заголовков заголовков липкими на прокрутке?
- 27. Включение заголовков C в C++ revisited
- 28. Использование внешних заголовков C++ в Objective-C
- 29. Злость заголовков
- 30. Файлы заголовков C++ простой вопрос
Стандартные стандарты кодирования - это скорее проблема управления, чем программирование. – Barmar
Сделайте свой дизайн для защиты от непреднамеренного использования в ваших классах API, а не для ограничений в отношении отдельных файлов заголовков. –