Strange behavior of iota
john.michael.hall at gmail.com
Wed Feb 16 20:37:19 UTC 2022
On Wednesday, 16 February 2022 at 19:35:00 UTC, jmh530 wrote:
> Step 1: In the integral overloads, use allSatisfy!(isSigned, B,
> E) || allSatisfy!(isUnsigned, T, U) for the current behavior
> Step 2: When !(allSatisfy!(isSigned, B, E) ||
> allSatisfy!(isUnsigned, T, U)), then convert to narrowest
> common type as I mentioned (long in your case).
> This would preserve the current size when the types are both
> either signed or unsigned and then would expand it only when
> there are different signed-ness. This also makes the behavior
> change at compile-time instead of throwing at runtime.
T/U should be B/E
More information about the Digitalmars-d-learn