D alternative for C/C++ -Dfoo=42

Vladimir Panteleev vladimir at thecybershadow.net
Tue Feb 25 04:50:21 PST 2014


On Tuesday, 25 February 2014 at 12:45:06 UTC, Cherry wrote:
> Hello
>
> I want to define an enum int, but I want to make it possible to 
> set its value when I run dmd from the command line. Is it 
> possible in D?

No, D does not allow passing values via the compiler command 
line. You can use the -debug=xxx or -version=xxx to enable 
debug(xxx) or version(xxx) blocks.

For arbitrary values, you will need intermediary files. You can 
use the import(filename) construct to read a file from disk 
during compilation, like so:

echo 42 > foo.txt

cat > test.d
import std.conv, std.string;
enum foo = to!int(import("foo.txt").strip());
^D

dmd -J. test.d


More information about the Digitalmars-d-learn mailing list