Re: покритикуйте метод компиляции
От: rg45 СССР  
Дата: 20.11.22 12:02
Оценка: 2 (1)
Здравствуйте, maks1180, Вы писали:

M>Покритикуйте плиз такой метод компиляции, создаётся файл main.cpp в него добавляются

M>#include myfile1.cpp"
M>#include myfile2.cpp"
M>и так далее, далее gcc main.cpp компилируется за 1 вызов.
M>Может быть можно это сделать без создания временного файла main.cpp ?

Фактически это отказ от использования принципа раздельной компиляции. То есть, на выходе препроцессора каждый раз будет образовываться мегамонстр, который будет постоянно расти во времени и в один прекрасный момент просто не поместится в оперативной памяти. О каком ускорении компиляции может идти речь при этом?

Другой момент: все анонимные пространства имен сливаются в одно большое. С практической точки зрения это равносильно отказу от использования локальных имен.

И самое главное, пожалуй: такой подход способстует образованию неоправданных паразитных зависимостей в коде, объемы которых будут расти как снежный ком. В долгосрочной перспективе любой проект будет стремиться к такому состоянию, когда в нем невозможно будет сделать даже относительно безобидные изменения, не поломав какую-нибудь функциональность.

P.S. А что с юнит-тестами? Где будут находиться юнит-тесты? Если в одном котле с продакшн-кодом, то все проблемы еще больше усугубляются. Если отдельно, тогда снова вернулись к раздельной компиляции и использованию заголовочных файлов.

P.P.S. Еще предвижу веселуху с порядком включения. Рано или позно окажется, что в модуле А нужно исбользовать что-то из модуля B, но поменять их местами нельзя, потому что модуль B зависит по порядку включения от модуля C. Конечно же, очевидным решением будет использование предварительного объявления. А когда количество одинаковых предварительных объявлений начнет зашкаливать за пределы здравого смысла будет принято решение о создании специальных файлов, в которые разработчики обязаны будут выносить все объявления. Закончится все адом.
--
Отредактировано 20.11.2022 12:25 rg45 . Предыдущая версия . Еще …
Отредактировано 20.11.2022 12:08 rg45 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.