Skip to content

Removed <...stream> includes from header files.

Christoph Lehmann requested to merge chleh/ogs:rm-iostream-includes into master

The include files <iostream>, <fstream>, <sstream> etc. are quite heavy. This MR removes them from most header files such that they are not included transitively in many other files.

This might improve compilation times a bit, but I did not measure it.

Some code had to be moved to cpp files and some templates are now explicitely instantiated.

The remaining <...stream> includes in header files are:

$ ag '<[^</]*stream>' -G 'h$'
Applications/FileIO/CsvInterface.h
18:#include <fstream>

BaseLib/IO/Writer.h
18:#include <sstream>

BaseLib/ConfigTree-impl.h
11:#include <sstream>

BaseLib/StringTools.h
18:#include <sstream>

ProcessLib/CompareJacobiansJacobianAssembler.h
13:#include <fstream>

They cannot be removed with reasonable effort and/or their range of effect is rather limited.

Merge request reports