'int' is enough for 'length' to migrate code from x86 to x64

ketmar via Digitalmars-d digitalmars-d at puremagic.com
Fri Nov 21 06:03:24 PST 2014


On Thu, 20 Nov 2014 13:28:37 -0800
Walter Bright via Digitalmars-d <digitalmars-d at puremagic.com> wrote:

> On 11/20/2014 7:52 AM, H. S. Teoh via Digitalmars-d wrote:
> > What *could* be improved, is the prevention of obvious mistakes in
> > *mixing* signed and unsigned types. Right now, D allows code like the
> > following with no warning:
> >
> > 	uint x;
> > 	int y;
> > 	auto z = x - y;
> >
> > BTW, this one is the same in essence as an actual bug that I fixed in
> > druntime earlier this year, so downplaying it as a mistake people make
> > 'cos they confound computer math with math math is fallacious.
> 
> What about:
> 
>      uint x;
>      auto z = x - 1;
> 
> ?
> 
here z must be `long`. and for `ulong` compiler must emit error.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20141121/f8b48979/attachment.sig>


More information about the Digitalmars-d mailing list