The function headers should be open for expansion but closed to modification. This means we should only have prototypes in the header, and provide the code in a source file. We'll have an additional library to link in, but this will be safer once installed on a system. Users will have to recompile/install to change these functions rather than simply edit the header. We can take the opportunity to spit the HelperFunctions.hpp into separate libraries. This will prevent the need to include a bunch of extra code if we just need a single namespace.
Functional Requirements
StringManipulationFunctions.hpp gets a corresponding source file, and is compiled into a library.
HelperFunctions.hpp gets split into one library per namespace, which all have corresponding source files.
Business Value
The function headers should be open for expansion but closed to modification. This means we should only have prototypes in the header, and provide the code in a source file. We'll have an additional library to link in, but this will be safer once installed on a system. Users will have to recompile/install to change these functions rather than simply edit the header. We can take the opportunity to spit the HelperFunctions.hpp into separate libraries. This will prevent the need to include a bunch of extra code if we just need a single namespace.
Functional Requirements
Developer Notes