Skip to content
GitLab
    • GitLab: the DevOps platform
    • Explore GitLab
    • Install GitLab
    • How GitLab compares
    • Get started
    • GitLab docs
    • GitLab Learn
  • Pricing
  • Talk to an expert
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
    Projects Groups Snippets
  • Sign up now
  • Login
  • Sign in
  • dune-functions dune-functions
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 26
    • Issues 26
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 32
    • Merge requests 32
  • 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
  • Email 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