Compile time function execution...
kris
foo at bar.com
Thu Feb 15 10:40:14 PST 2007
Walter Bright wrote:
> ... 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.
Good one. Can you perhaps explain what the execution mechanism is? That
aspect is much more interesting to some of us geeks <g>
More information about the Digitalmars-d
mailing list