digitalmars.D.learn - why global immutable string variable cannot be used after "case"?
- Cheng Wei (18/18) Sep 23 2011 import std.stdio;
- Tobias Pankrath (3/7) Sep 23 2011 immutables are runtime constants. For case you need a
- Jonathan M Davis (4/13) Sep 23 2011 Or you could even reduce it to
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:Or you could even reduce it to enum mycase = "value"; - Jonathan M DavisIf 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