3 ms·
I get by without modules or header files in my C++ projects by using the following guidelines: - Single translation unit (main.cpp) - Include all other cpp fi
by fasterik 9mo ago
I get by without modules or header files in my C++ projects by using the following guidelines:
- Single translation unit (main.cpp)
- Include all other cpp files in main
- Include files in dependency order (no forward declarations)
- No circular dependencies between files
- Each file has its own namespace (e.g. namespace draw in draw.cpp)
This works well for small to medium sized projects (on the order of 10k lines). I suspect it will scale to 100k-1M line projects as long as there is minimal use of features that kill compile times (e.g. templates).
- indil 9mo agoI believe that's called a unity build. Really nice speedup.
- zabzonk 9mo agoSQLite calls this an "amalgamation". It is easy and convenient for users (not developers) of SQLite code. https://sqlite.org/amalgamation.html https://sqlite.org/amalgamation.html
- zabzonk 9mo agoThis might be OK for someone using your files (a bit like a header-only library) but not so great for team development.
- w4rh4wk5 9mo agoYou still organize the big file into sections to keep things together that are semantically related. For Git it mostly doesn't matter whether it's 100 small files or a single big one.