Deprecation

Neia Neutuladh neia at ikeran.org
Sat Jan 19 00:07:13 UTC 2019


On Fri, 18 Jan 2019 22:53:23 +0000, Ali wrote:
> Hello. I am having an issue with the code below. the out put after
> compiling is this :
> 
> Deprecation: foreach: loop index implicitly converted from size_t to
> uint
> 
> the code is :
> 
> auto available = new int[cast(uint) max - min];
> 		foreach (uint i, ref a; available)
> 			a = min + i;
> 
> Any help would be highly appreciated.

You are trying to use a uint (max value 2^32-1) to give an index for an 
array (which might be more than 2^32-1 elements long). That's deprecated 
and will be gone from the language in a few releases.

Instead, write:

foreach (size_t i, ref a; available)
  a = cast(uint)(min + i);


More information about the Digitalmars-d-learn mailing list