On Fri, 23 Sep 2011 11:51:35 -0400, Gor F. Gyolchanyan <gor.f.gyolchan...@gmail.com> wrote:

I have a proposal to introduce and optional explicit separation of
compile-time facilities from run-time facilities.
There is a new keyword, called compiletime (or something similar).
The keyword can be used with `is` expression to detect whether the current
scope is executing in compile-time or not.

static if(__traits(compiletime))
{
    // ...
}

static if(__ctfe) does this already


The keyword is a storage class for declarations of variables, types and functions.

A variable, declared with this keyword behaves much like a enum:

compiletime float dmdVersion = 2.055;

This keyword reflects the nature of dmdVersion much better, then the `enum`
keyword, since it does not actually enumerate anything.
dmdVersion does not exist at run-time (hence, cannot be taken address of) just
like enums.

This is a long dead horse, enum is here to stay in its current meaning, much as a lot of us don't like it. You're likely to get nowhere in this argument.

All of the rest of your points are solved with static if(__ctfe)

-Steve

Reply via email to