Недавно мне приходилось работать с некоторыми проектами Visual Studio С++ с обычными конфигурациями Debug и Release, но также "Release All" и "Debug All", которые я никогда раньше не видел.
Оказывается, у автора проектов есть один ALL.cpp, который # включает все другие .cpp файлы. * Все конфигурации просто создают этот файл ALL.cpp. Разумеется, это исключается из регулярных конфигураций, и регулярные конфигурации не строят ALL.cpp
Я просто подумал, что это обычная практика? Какие выгоды он приносит? (Моя первая реакция заключалась в том, что он плохо пахнет.)
С какими ловушками вы столкнетесь с этим? Я могу подумать, что если у вас есть анонимные пространства имен в вашем .cpps, они больше не являются 'private' для этого cpp, но теперь видны и в других cpps?
Все проекты создают библиотеки DLL, поэтому наличие данных в анонимных пространствах имен не будет хорошей идеей, не так ли? Но функции были бы в порядке?
Приветствия.