Commit 50ea109d authored by Oliver Sander's avatar Oliver Sander

[!113] Run-time container for LocalFiniteElement objects using std::variant

Merge branch 'introduce-lfe-variant' into 'master'

ref:core/dune-localfunctions 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:

-   [x] Port this from std::variant to Dune::Std::variant
-   [x] Write a unit test
-   [x] Write a changelog entry
-   [x] Better inline documentation

See merge request [!113]

  [!113]: gitlab.dune-project.org/core/dune-localfunctions/merge_requests/113
parents bd087218 09387ca3
Pipeline #19543 passed with stage
in 4 minutes and 53 seconds