Cleanup `makeBasis()` mechanism
Cleanup makeBasis()
mechanism. This MR is on top of !91 (merged).
- Rename
*NodeFactorsBuilder
/*FactoryTag
to*PreBasisFactory
- Rename
build()
tomakePreBasis()
- Make
makePreBasis()
const
- Make implementation of
BasisBuilder::composite()
more readable. - Fix
BasisBuilder::composite()
andBasisBuilder::power()
. Both did not work with statefulChildPreBasisFactories
before. This is now fixed. - Hide internal members of
PreBasisFactories
- Use return type deduction for all
PreBasisFactory
creation helpers. This makes the code much more readable and also hides the concreteImp::*
return type from the use. - Add utility
applyPartial()
which is likestd::apply
but 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
*Builder
classes 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
/PreBasisFactory
to hook into themakeBasis()
mechanism, then you have to renamebuild()
tomakePreBasis()
.