-
Notifications
You must be signed in to change notification settings - Fork 1
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
uint64_t is not an alphabet? #200
Comments
What's the result of |
A truncated char. We can also just define it as a semi_alphabet. |
Core-Meeting 2021-04-12: We talked about some solution approaches, like changing the meaning of alphabet_size: alphabet_size = uint16_t; // 256
rank_type = uint8_t
rank_type max_rank = 255; // numeric_limits::max for (size_t rank = 0u; rank < alphabet_size; ++rank)
// be-aware: this is an endless-loop; case would be uint8_t for example
for (rank_type rank = 0u; rank <= max_rank; ++rank) // max_rank is constexpr, compiler should warn about endless-loop
for (alphabet && alph: enumerate_alphabet<alphabet_t>()) //
{} The compiler does not give any warning. (even though I saw one at some point in time) Another approach would be to use compiler extensions, like |
This would allow utf-32 on 32bit machines. (And in general make our library compile on 32bit machines.) |
Moved to Release 3.2. |
Description
fails to compile.
The code states the following reason:
* \attention * Note that `uint64_t` is absent from the list, because there is no corresponding * character type.
Is that really an issue? We have at least the
alphabet_variant
alphabet that can have a larger rank than a char can represent.Some problems: size of
uint64_t
is not representable in the same type =>size = 0
.Acceptance Criteria
Tasks
Definition of Done
The text was updated successfully, but these errors were encountered: