digitalmars.D - problem with args
- Chris Paterson (23/23) Sep 15 2007 I can't see what's going wrong here. Compiling this program:
- Christian Kamm (10/18) Sep 15 2007 const in D 1.0 means compile time constant and neither args[1] nor the c...
I can't see what's going wrong here. Compiling this program: === import std.stdio; import std.conv; int main(char[][] args) { if (args.length > 0) { const int max = std.conv.toInt(args[1]); writefln("max=%d", max); } return 0; } === with "dmd args_test.d" gives an error message: "Error: variable args is used before initialization" with no line number or any other information. It's the line: const int max = std.conv.toInt(args[1]); that causes the problem. What am I missing here? Thanks, Chris.
Sep 15 2007
Chris Paterson wrote:int main(char[][] args) { if (args.length > 0) { const int max = std.conv.toInt(args[1]); writefln("max=%d", max); } return 0; }const in D 1.0 means compile time constant and neither args[1] nor the call to toInt can be evaluated at compile time. Remove the const and it will compile. Also change the check to args.length > 1 though. It's the same for 2.0 at the moment, I think. Probably you could use final there to get the effect you desired, but final might be removed in the future. Remember to use the digitalmars.D.learn newsgroup for questions like this. Cheers, Christian
Sep 15 2007