SSブログ

D言語の Hello World に思いのほか苦戦 [D言語]

去年そんなに深くやりこむつもりでもなく買った「D言語パーフェクトガイド」という本があるのだが、最近ちょっと D への興味が出てきたので付属CDでDコンパイラを入れて触ってみることにした。

何はなくとも Hello World というわけで、こんなのを打ち込んで実行する。

import std.stream;

int main(char[][] args)
{
  stdout.writeLine("Hello World");
  return 0;
}

よしよし動くね、とかやっていたのだが D は結構バージョンアップがあるらしい。どうせなら新機能とかも入ってるほうがいいのでウェブサイト [1] から最新のコンパイラを入れなおす。

そこで上記のプログラムをもう一度コンパイルすると…

hello.d(5): undefined identifier stdout
hello.d(5): undefined identifier stdout
hello.d(5): no property 'writeLine' for type 'int'
hello.d(5): function expected before (), not 1 of type int

??? 通らないのだ。
ZIPを解凍するだけでインストールには失敗のしようもない。

ウェブでいろいろ調べてみたらなんとバージョン0.126の更新内容 [2] に以下の記述が。

stream.d:
(snip)
deprecate stdin,stdout,stderr

ええっ。

で、現在は以下の書き方が正しいようだ。

import std.cstream;

int main(char[][] args)
{
  dout.writeLine("Hello World");
  return 0;
}

つまり std.stream の stdout は廃止になって代わりに std.cstream に dout というのが追加になっているというわけだ。

しかしこの「D言語パーフェクトガイド」を買ったのは去年の話なのだが、 Hello World サンプルが動かなくなるような仕様変更が入るとは D おそるべしである。

[1] http://www.digitalmars.com/d/index.html
[2] http://www.digitalmars.com/d/changelog1.html#new0126


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。