Boost is a major drag when you want to compile anything, as the huge number of headers slows down the compilation considerably.
The OdePropagators directly expose the boost::odeint headers to all clients that use them. This should stop. Everything that includes boost should be used only internally in the library, the outside world should only see data structures that have nothing to do with boost.
Measure the effect of this cleanup on compilation times!
- boost dependency removed, only left in a private implementation header that is not regularily exposed outside => almost no boost dependency left
- effect on compilation times small (2% overall, < 10% for demos), might gain another few percent if ProgramOptions also encapsulates the boost dependency ([#105])
- Update: forgot one include in the main "wavepacket.hpp" include. Removing this gives another 10-20% speedup of the whole library (including demos); considering that only a few acceptance tests and the demos are affected, the speedup for the demos only is considerably larger.
Diff:
Related
Tickets:
#105Diff:
Related
Tickets:
#105