-
-
Notifications
You must be signed in to change notification settings - Fork 66
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
Concepts #571
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #571 +/- ##
=======================================
Coverage 93.28% 93.29%
=======================================
Files 90 90
Lines 4454 4457 +3
=======================================
+ Hits 4155 4158 +3
Misses 299 299 ☔ View full report in Codecov by Sentry. |
fa01b20
to
dd1ce20
Compare
806bbb6
to
84ca85d
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks great! A few repeated comments about API changes throughout.
Introduce mapping concepts and use concept asserts for `TermMap` and its subclasses. Changelog-changed: `TermMap` uses `find` method instead of `operator()` for reverse lookup (string to int) Signed-off-by: Michal Siedlaczek <michal@siedlaczek.me>
Introduce posting list concepts & use them in the algorithms. Signed-off-by: Michal Siedlaczek <michal@siedlaczek.me>
Add inverted index concepts and static assertions for the existing index classes. Signed-off-by: Michal Siedlaczek <michal@siedlaczek.me>
This change set contains commits that introduce C++20 concepts for:
Concepts are only used when compiled in C++20 mode, ignored otherwise.
Assertions are added to known structures that satisfy these concepts.
Some
require
constraints are also added, most notably for the algorithm execution that expect certain posting lists.Rationale
Concepts are introduced for faster constraint checking and explicit interface modeling when templates are used.