Skip to content

Draft: Introduce c++20 concepts

Simon Praetorius requested to merge feature/concepts into master

(This MR is for experimenting with C++20 concepts and far from ready to be merged)

Summary

Replace the C++17 concept-workarounds Dune::Concept::models<...> by proper c++20 concepts and replace all enable_if SFINAE statements by requires clauses.

Discussion

  • Tested locally with clang-16. We need a proper toolchain for more recent compilers supporting concepts.
  • I don't see any improvement of compile-times by this change in code
  • The definition of a basis-tree in terms of concepts is difficult, since we need recursion that is not allowed in concept definitions. Any ideas?
Edited by Simon Praetorius

Merge request reports