On 20/07/2015 12:17 a.m., Clayton wrote:
Pardon me for trivial question, Am new to D.


Why would a statement as below fail to compile. The plan is to do some
computation at compile-time hence considering the static-if statement
which fails to compile. The regular  if-statement compiles but is not
useful since it is a runtime construct.

The error message I get is :  Error: variable i cannot be read at
compile time




foreach( i; 0..size-1){
         static if  ( i == -1 ){
             //Do something
         }

     }

static if is for compile time known constants.
if is for runtime variables.

In this case it would be a runtime variable even if it is known at compile time. Known at compile time != run at compile time. They overlap yes, just not the same thing.

Reply via email to