Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • dune-functions dune-functions
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 27
    • Issues 27
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 25
    • Merge requests 25
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • staging
  • dune-functionsdune-functions
  • Merge requests
  • !378

Draft: Introduce c++20 concepts

  • Review changes

  • Download
  • Patches
  • Plain diff
Open Simon Praetorius requested to merge feature/concepts into master Oct 13, 2022
  • Overview 30
  • Commits 6
  • Pipelines 4
  • Changes 39

(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 Oct 13, 2022 by Simon Praetorius
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: feature/concepts