more enum and pragma troubles

captaindet 2krnk at gmx.net
Sat Aug 17 17:16:59 PDT 2013


On 2013-08-17 14:36, Jesse Phillips wrote:
> Third you've declared a variable, bar, which will store your
> enumerated value, 4. Variables are not compile time, even if the
> value stored came from a compile time known value.

yep, it completely escaped me that these are 'normal' variables. and i have realized now that i can make them known at compile time the same way as is done for other 'normal' variables, by declaring them const ;)

>> pragma( msg, foo ); // why does it print: cast(Test)2
>
> You are referring to a manifest constant, this is a simple textual
> replacement. Enumerations are typed, 2 is not a Test, so the compiler
> will write out a cast so the type system is happy. Similarly
> Test.test2 is not the value of foo, foo is a signal to the compiler
> to insert "cast(Test)2."
>
> Hope that makes sense.

things are becoming clearer now. thanks for your explanation, jesse!


/det


More information about the Digitalmars-d-learn mailing list