Thread overview | |||||
---|---|---|---|---|---|
|
December 10, 2017 `string[] args` can't be read at compile time? | ||||
---|---|---|---|---|
| ||||
import std.stdio; import std.file; void main(string[] args) { if (args.length != 2) { writeln("usage: ./app <path-to-file>"); return; } if (!exists!(args[1])) { writefln("fatal error: %s doesn't exist", args[1]); } } Line 13 (if (!exists!(args[1]))) produces error: 'app.d(13): Error: variable args cannot be read at compile time' With 'dmd -run app.d' compilation command. I've seen another Stackoverflow post with a similar issue (https://stackoverflow.com/questions/39920780/variable-i-cannot-be-read-at-compile-time) but I don't believe it to be related. Any help? |
December 10, 2017 Re: `string[] args` can't be read at compile time? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Unazed Spectaculum | On Sunday, 10 December 2017 at 15:28:19 UTC, Unazed Spectaculum wrote:
> if (!exists!(args[1]))
That should be `!exists(args[1])`. You had an extra ! in there by the (.
Generally speaking, when there's a "cannot be read at compile time", it is because something is initialized in a static context and/or there's an extra ! in the arg list to get rid of.
|
December 10, 2017 Re: `string[] args` can't be read at compile time? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Adam D. Ruppe | On Sunday, 10 December 2017 at 15:46:57 UTC, Adam D. Ruppe wrote:
> On Sunday, 10 December 2017 at 15:28:19 UTC, Unazed Spectaculum wrote:
>> if (!exists!(args[1]))
>
> That should be `!exists(args[1])`. You had an extra ! in there by the (.
>
>
> Generally speaking, when there's a "cannot be read at compile time", it is because something is initialized in a static context and/or there's an extra ! in the arg list to get rid of.
Thanks! That fixed it. I'll take it into account whenever I see any other future errors like it.
|
Copyright © 1999-2021 by the D Language Foundation