Нещодавно у мене була причина працювати з деякими проектами Visual Studio C ++ із звичайними конфігураціями налагодження та випуску, а також "Release All" та "Debug All", яких я ніколи раніше не бачив.
Виявляється, автор проектів має єдиний ALL.cpp, який # включає всі інші .cpp файли. * Усі конфігурації просто створюють цей файл ALL.cpp. Звичайно, це виключається зі звичайних конфігурацій, і звичайні конфігурації не створюють ALL.cpp
Я просто подумав, чи це звичайна практика? Яку користь це приносить? (Моя перша реакція полягала в тому, що неприємно пахло.)
З якими підводними каменями ви, мабуть, стикаєтесь? Я можу придумати одне: якщо у вас є. Анонімні простори імен у .cpps, вони більше не є "приватними" для цього cpp, але тепер їх видно і в інших cpps?
Усі проекти будують бібліотеки бібліотек DLL, тому наявність даних в анонімних просторах імен не буде гарною ідеєю, чи не так? Але функції були б нормальні?