I don't think this is a bug but...
Jesse Phillips
jessekphillips+d at gmail.com
Fri Aug 14 12:50:15 PDT 2009
Benjamin Shropshire Wrote:
> The same expression twice gets different results
>
> code:
>
> import std.stdio;
>
> bool Fn(float i){ return true; }
> const bool b = Fn(cast(int)0);
>
> static if(b) bool Fn(int i){ return false; }
> const bool c = Fn(cast(int)0);
>
> void main()
> {
> writef("%s\n", b);
> writef("%s\n", c);
> }
>
> output:
>
> true
> false
>
The value of 'b' is assigned during compile time, but since it is indirectly called the behavior seems odd. I suppose it is something to be aware of, but it is behaving correctly.
More information about the Digitalmars-d
mailing list