今日の雑記

生きることでいっぱいいっぱい

久々に D ネタ。

以下のコードが通らない(訳あって Ver0.160)。

rand_seed(d_time, 0);

dmd -c -d -w -op -debug -g -I../import gctrl.d
warning - gctrl.d(122): implicit conversion of expression (long) of type long to uint can cause loss of data
make: *** [gctrl.obj] Error 1

うーん。 D は -w オプションをつけると警告を出すんだけど、警告はエラーとして扱うんだよね。これ、外したくないんだよねぇ。特に深い理由は無いんだけど。
ちなみにこうすると、

rand_seed(cast(uint)d_time, 0);

dmd -c -d -w -op -debug -g -I../import gctrl.d
gctrl.d(122): type long is not an expression
make: *** [gctrl.obj] Error 1

こうなる。あーもうどうすればいいのかと。
素直に「std.c.time」を使うか...。ってそれで解決するのか?