enum abuse
Dicebot
public at dicebot.lv
Fri Feb 28 03:47:34 PST 2014
On Friday, 28 February 2014 at 11:27:31 UTC, Mike wrote:
> I recently saw the following line of code:
>
> enum size = __traits(classInstanceSize, Foo);
>
> Why "enum"? Is this the equivalent of "immutable auto" or
> something?
>
> Mike
enum creates compile-time placement constant. It does not create
any symbol in resulting binary. Value of such enum gets pasted
straight into the context when used.
Most similar thing in C terms would have been `#define size
__traits(classInstanceSize, Foo)`, alas from preprocessor issues
not present in D :)
It is idiomatic D way to force compile-time evaluation of
expression.
More information about the Digitalmars-d-learn
mailing list