enum for beginners

Johannes Totz johannes at jo-t.de
Tue Nov 15 07:43:15 PST 2011


On 14/11/2011 22:32, Timon Gehr wrote:
> On 11/14/2011 11:25 PM, Johannes Totz wrote:
>> Hi!
>>
>> I'm having trouble with named typed enums.
>> This works (unnamed):
>>
>> enum : string
>> {
>> a = "a",
>> b = "b"
>> }
>>
>> int main(string[] argv)
>> {
>> writeln(a);
>> return 0;
>> }
>>
>>
>> But this does not:
>>
>> enum X : string
>> {
>> a = "a", // Error: Integer constan
>
> t expression expected
>> // instead of "a"
>> b = "b" // Error: Integer constant expression expected
>> // instead of "b"
>> }
>>
>> int main(string[] argv)
>> {
>> writeln(X.a);
>> return 0;
>> }
>>
>>
>> What did I miss?
>>
>
> I don't know. It works for me.
>
> import std.stdio;
>
> enum X : string{
> a = "a",
> b = "b",
> }
>
>
> int main(string[] argv) {
> writeln(X.a);
> return 0;
> }
>
> compiles, runs and prints "a" as expected.
>
> Are you using the latest version of the compiler? (DMD v2.056)

I had 2.055 and just upgraded.
But this seems to be some issue with VisualD. Compiling on the command 
line (with 2.056) works fine as expected.


More information about the Digitalmars-d-learn mailing list