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);
  • Deprecation Ali via Digitalmars-d-learn
    • Re: Deprecation H. S. Teoh via Digitalmars-d-learn
    • Re: Deprecation Neia Neutuladh via Digitalmars-d-learn
    • Re: Deprecation Steven Schveighoffer via Digitalmars-d-learn

Reply via email to