Compile time function execution...
Walter Bright
newshound at digitalmars.com
Thu Feb 15 10:23:43 PST 2007
... is now in DMD 1.006. For example:
> -------------------------------------------
> import std.stdio;
>
> real sqrt(real x)
> {
> real root = x / 2;
> for (int ntries = 0; ntries < 5; ntries++)
> {
> if (root * root - x == 0)
> break;
> root = (root + x / root) / 2;
> }
> return root;
> }
>
> void main()
> {
> static x = sqrt(10); // woo-hoo! set to 3.16228 at compile time!
> writefln("%s, %s", x, sqrt(10)); // this sqrt(10) runs at run time
> }
> ------------------------------------------
This should obsolete using templates to compute values at compile time.
More information about the Digitalmars-d
mailing list