What you call "usually header-only" is actually a guarantee to *maximize* build times.
There is nothing wrong with #including the .cpp with the non-public implementation *into the private module fragment* ‼️
Au contraire, mon ami: by that, you pre-build *both* the interface and the implementation, thereby *minimizing* build times. That's even better than just pre-building the implementation as seen in traditional builds.
This is in essence the main topic of this year's talks of mine (first given at 'using std::cpp 2026' three weeks ago)!
Antifascista)






