Run-time container for LocalFiniteElement objects using std::variant
This patch introduces a container that can store a LocalFiniteElement object whose precise type is only known at run-time. Internally, it uses std::variant.
Pro: Much simpler code than full type erasure Pro: Possibly a bit faster, too, but there are no measurements (yet) Con: The set of possibly types has to be known beforehand
It is argued that the 'con' is not severe. The main intended use for LocalFiniteElementVariant is to switch between LocalFiniteElements for different grid element types at run-time. Sets of such LocalFiniteElements are typically small and known at compile time.
TODO:
-
Port this from std::variant
toDune::Std::variant
-
Write a unit test -
Write a changelog entry -
Better inline documentation
Edited by Carsten Gräser