2006-01-01から1ヶ月間の記事一覧

呼び出されて飲んだ

1/24 23:30 頃、携帯がなる。誰かと思って出てみると、以前一緒に仕事をしたことがある四国のKさんから。私の作った部分で障害でも発生したかとビビったが、飲みに来いとのこと。東京のEさんも来てるとのこと。嬉しい。妻も誘ったが具合悪いので辞退。地下鉄…

文字列化関数

1/22の日記にkurimuraさんからコメントをいただき、ある型が連想配列かどうかの判定を教えていただきました。 それを取り入れた、文字列化テンプレート。 template ObjToString(T) { char toString(T value) { char buffer; static if (is (T : char)) buffe…

文字列まわり

まず誤記の訂正。 1/19 と 1/21 に配列の出力は printf でできると書きましたが、std.stdio.writefln の間違いでした。筆者は似たよーなものと思っておりましたが、printf は std.c.stdio のものなので、オブジェクトとは無縁。配列の各要素に対して .toStri…

文字列化テンプレート

配列だと、printf("%s") で出力できるが、連想配列だと化けて出力されるので、汎用の文字列化関数を作ってみた。 template ObjToString(T) { char toString(T value) { char buffer; static if (is (T : char)) buffer = value; else static if (is (T : Obj…

いろいろ

16日のDBCと unittest の件は解決。 DBC の方は、in ブロック、body ブロック 含め、{}でかこってしまっていたため、外側の{}が body ブロックと解釈され、「body ブロックに in を書いちゃいかんよ」とコンパイラからしかられていた。(恥) unittest …

文字列クラス

大文字小文字を区別しない文字列クラスを作ってみた。 class istring { char value; this(char value) { this.value = value.dup; } int opEquals(istring rhs) { return icmp(value, rhs.value) == 0; } int opEquals(char rhs) { return icmp(value, rhs) …

printf

なんかDって、新しいのと古いのが共存しているのが面白い。 GCサポートしているのに、delete が残っているし。 極めつけは printf か。 でも型安全でないのは、ヤなので、すべての class に toString() を 再定義し、 writefln("obj = " ~ obj.toString); と…

unittest と DBC

最近D言語をいぢっているが、class に unittest を記述しているのに動かない。 DBC は in { 〜 } と書いておくとコンパイルエラーになってしまう。 (何故だ?)C++ In Depth シリーズを読むのが趣味だったのだが、D言語のスペックを知ってから読む気がなく…