Dynamic arrays allocation size
"Luís
"Luís
Tue Mar 26 11:37:21 PDT 2013
On Tuesday, 26 March 2013 at 18:24:39 UTC, Steven Schveighoffer
wrote:
> http://dlang.org/expression.html#AddExpression
>
> "If both operands are of integral types and an overflow or
> underflow occurs in the computation, wrapping will happen. That
> is, uint.max + 1 == uint.min and uint.min - 1 == uint.max."
Thanks Steve!
Do you know if there ever was a (public?) discussion about this,
before being defined this way? I wanted to see what trade-offs
were considered, etc.
(For instance, one disadvantage I see with this definition is
that it exacerbates the potential problems with D's well-defined
integral types' sizes. Imagine I'm programming some
microcontroller with unusual word or register sizes. For
instance, 10 bits bytes instead of the usual 8 bit bytes. In C
there would not be any performance penalty even for the unsigned
char, which mandates wrapping, because the wrapping would occur
at 2^10. In D you would have to put extra checks because a well
defined size plus a well defined wrapping would not allow just
using the native arithmetic instructions alone, which presumably
would not guarantee wrapping at 8-bit widths.)
More information about the Digitalmars-d
mailing list