| 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
Permalink
Reply