No MPL, no variantdata, stepper concepts
This MR gets rid of boost::mpl:
- Reimplement type generation for
FittableMeasurementusingboost::hana. This also effectively switches that type away fromboost::varianttostd::variant. - Reimplement action / abort list introspection using
boost::hana - Drop type erasure for
GridandInterpolatedBFieldMap. The templating now bubbles through to the stepper. Setup becomes little more complicated, but we're not going through TE at all anymore, which should be a performance benefit. Effectively removes any signature requirements on field mappers and the grid, even though they were not enforced even before, since that only happened when using the concepts with TE. - Removes the
VariantDatacode. It's unreasonable to pay the performance cost forboost::mplthere, when we're not actively using it.
This includes @fklimpel's changes from !518 (merged), but reimplements the static assertions on steppers using a custom setup not using boost (see TypeTraits.hpp and StepperConcept.hpp). These concepts are only enforced at compile and are not (and cannot be) used for type erasure.
All in all, this decreases build time by about 10% and memory usage by about 9%.
I would propose we close !518 (merged) and merge this MR instead.
EDIT: !528 (merged) dominates compile time over this one, but I still think we'd benefit from this.
Edited by Paul Gessinger-Befurt
