top | item 46817983

(no title)

fasterik | 1 month 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).

discuss

order

zabzonk|1 month ago

This might be OK for someone using your files (a bit like a header-only library) but not so great for team development.

w4rh4wk5|1 month ago

You 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.

indil|1 month ago

I believe that's called a unity build. Really nice speedup.