Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cpp20 concepts kernel #1761

Open
wants to merge 48 commits into
base: main2.0
Choose a base branch
from

Conversation

BDoignies
Copy link
Contributor

PR Description

Cpp20 concepts for kernel/ package. Note: this PR is not complete yet, but as CInteger is a huge concept, it is filed now to check against github actions.

Checklist

  • Unit-test of your feature with Catch.
  • Doxygen documentation of the code completed (classes, methods, types, members...)
  • Documentation module page added or updated.
  • New entry in the ChangeLog.md added.
  • No warning raised in Debug mode.
  • All continuous integration tests pass (Github Actions)

As they were a simple refinement, BOOST_CONCEPT_CHECK and inheritance were invalid.

This includes:
- CUnaryFunctor
- CPredicate
- CPointFunctor
- CPointPredicate
- CSurfelPredicate
DGTAL_CONCEPT_CHECK macro does not work with clang inside
template function. It considers that the lambda call is not
a constant expression and therfore does not allows to instantiate
the variable.
@BDoignies BDoignies requested a review from dcoeurjo February 19, 2025 14:51
For unknown reasons, this compiler version crashes with error C1001:
Internal compiler error.

This patch was found by trial and error and works but I do not know
why it fixes things (on my computer at least).

If I were to guess (with the fixes in mind), it is due to some kind
of name-dependant lookup that it can not handles or find in some
compilation context.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants