ponce

div0 div0 at sourceforge.net
Tue Nov 9 16:24:30 PST 2010


On 10/11/2010 00:16, Jonathan M Davis wrote:
> On Tuesday, November 09, 2010 13:49:12 bearophile wrote:
>> Jonathan M Davis:
>>> it would be possible to make it so that any objects allocated with
>>> new during CTFE would be in the dynamic heap during runtime.
>>
>> This is possible, but it doesn't seem what you usually desire when you
>> allocate an object at compile time.
>
> Why not? CTFE stuff should either disappear in the binary, because it's not
> needed anymore, or it should be the same as if it were created at runtime. CTFE
> is a great opportunity to create more complicated stuff at cheaper cost (since
> the calculations are done at compile time instead of runtime), and more
> importantly, have compile-time constants which are more complex. It's also a
> great way to generate code. But I don't see why you'd want statically-created
> objects to be treated differently once the program is running.
>
> - Jonathan M Davis

No, that's completely wrong.

CTFE should result in constant initialisation values, eg stuff in the 
.exes read only data segment.

CTFE is the same as:

immutable string _someString = "hello world!";

Expect that it's:

immutable string _someString = reallyComplicatedCTFEfunction();

-- 
My enormous talent is exceeded only by my outrageous laziness.
http://www.ssTk.co.uk


More information about the Digitalmars-d-learn mailing list