This repository has been archived by the owner on Aug 5, 2022. It is now read-only.
RFC: modify the criterion APIs to take uints instead of ints #153
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Using signed integers in the criterion API made it necessary to add guards for
undefined behaviour occuring when bit-shifting a signed integer up to its sign
bit. It also artifically reduced by 1 the number of possible inclusive values
in an inclusive criterion.
All APIs are changed in a retrocompatible fashion to take unsigned ints as
input parameters. However, getNumericalValue takes an output parameter. This
one must be kept as it is. We add a overloaded version of getNumericalValue
taking an unsigned int and depracate the "signed int" version.
Users that do not update their code to pass unsigned integers will still work
fine but will have the "31 inclusive criterion values" limitation.
1U << uiState
)sizeof uint32_t * CHAR_BIT ?