Cleanup `makeBasis()` mechanism
Cleanup makeBasis() mechanism. This MR is on top of !91 (merged).
- Rename
*NodeFactorsBuilder/*FactoryTagto*PreBasisFactory - Rename
build()tomakePreBasis() - Make
makePreBasis()const - Make implementation of
BasisBuilder::composite()more readable. - Fix
BasisBuilder::composite()andBasisBuilder::power(). Both did not work with statefulChildPreBasisFactoriesbefore. This is now fixed. - Hide internal members of
PreBasisFactories - Use return type deduction for all
PreBasisFactorycreation helpers. This makes the code much more readable and also hides the concreteImp::*return type from the use. - Add utility
applyPartial()which is likestd::applybut allows to select the tuple entries to be used as arguments. (This should maybe go to dune-common).
This is what you need to do to update your code:
- If you only use the
makeBasis()mechanism this will work as before. - If you explicitly constructed the
*Builderclasses in your code, you must follow the renaming. - If you explicitly used the
build()methods, you have to change this tomakePreBasis() - If you implemented your own
FactoryTag/NodeFactoryBuilder/PreBasisFactoryto hook into themakeBasis()mechanism, then you have to renamebuild()tomakePreBasis().