digitalmars.D.learn - why global immutable string variable cannot be used after "case"?
- Cheng Wei <rivercheng gmail.com> Sep 23 2011
- Tobias Pankrath <tobias pankrath.net> Sep 23 2011
- "Jonathan M Davis" <jmdavisProg gmx.com> Sep 23 2011
import std.stdio;
immutable HELLO = "hello";
void main() {
auto string = "hello";
switch(string) {
case HELLO:
writeln("hello");
break;
default:
writeln("unknown");
break;
}
}
testCase.d(7): Error: case must be a string or an integral constant,
not HELLO
If immutable cannot be used, what else can be used to replace #define
in C?
Thanks a lot.
Sep 23 2011
If immutable cannot be used, what else can be used to replace #define in C? Thanks a lot.
immutables are runtime constants. For case you need a compile time constant, which you can define with enum. enum string mycase = "value";
Sep 23 2011
On Friday, September 23, 2011 01:38 Tobias Pankrath wrote:If immutable cannot be used, what else can be used to replace #define in C? Thanks a lot.
immutables are runtime constants. For case you need a compile time constant, which you can define with enum. enum string mycase = "value";
Or you could even reduce it to enum mycase = "value"; - Jonathan M Davis
Sep 23 2011








"Jonathan M Davis" <jmdavisProg gmx.com>