www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - What's wrong with this enum?

reply Andrej Mitrovic <none none.none> writes:
// Works
enum : int[string]
{
    Circle = ["CoolCircle":50]
}    

//  Error: non-constant expression ["CoolCircle":50]
enum shapes : int[string]
{
    Circle = ["CoolCircle":50]
}

I can't find this in bugzilla.
Feb 23 2011
next sibling parent reply Jesse Phillips <jessekphillips+D gmail.com> writes:
Andrej Mitrovic Wrote:

 // Works
 enum : int[string]
 {
     Circle = ["CoolCircle":50]
 }    
 
 //  Error: non-constant expression ["CoolCircle":50]
 enum shapes : int[string]
 {
     Circle = ["CoolCircle":50]
 }
 
 I can't find this in bugzilla.

I believe it is because shapes.Circle["CoolCircle"] = 25; perhaps a a defining: enmu shapes : const(int[string]) would work? Anyway with DMD 2.052 I'm not getting your error.
Feb 23 2011
parent Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
I've tested on Ubuntu it still errors out.
Feb 23 2011
prev sibling parent Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
On 2/24/11, Jesse Phillips <jessekphillips+D gmail.com> wrote:
 I believe it is because

 shapes.Circle["CoolCircle"] = 25;

Huh?
 perhaps a a defining:

 enmu shapes : const(int[string])

 would work?

Nope. enumtwobug.d(10): Error: non-constant expression ["CoolCircle":cast(const(int))50]
 Anyway with DMD 2.052 I'm not getting your error.

What OS are you running? I'm running 2.052 and getting the error on Windows. Maybe it's an OS-specific bug.
Feb 23 2011