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

D

D言語の新たに追加されたiftype文ですけど、これは暗黙的な変換を許容します。 たとえば template eq(A,B){ iftype(A:B){pragma(msg,"0");} else{pragma(msg,"1");} }というコードを実行すると0が表示されます。 暗黙的変換を許容するって便利なことも多いけ…

D

さてと前回書いたtemplateだけじゃ何の役に立つか全然分かりません。 なのでどういう時に使うか書いておきます。 まず一番の利点は、pragma(msg)に出力できることです 残念ながらpragma(msg)は文字列しか出力できません。 なので前回のtoStringによって文字…

D

さてと、D言語でメタプログラムの練習がてらに、こんなん書いてみました template toString(ulong N){ static if(N>=10)const char[]toString = .toString!(N/10) ~ .toString!(N%10); //else const char[]toString=['0'+N]; //なぜかエラーtemplate toStrin…

v.0.124

D

うわー。 iftypeとstatic ifってなにそれw コンパイルタイムプログラミング万歳 あとはboxingも追加か。 こっちは暗黙的ではなくて自分でboxingするのがメンドクサー 気持ち的にはboost::anyみたいな感じですね 今回のバージョンは面白そうですね 追記 えー…

[その他] 学校のプログラミング演習が退屈なので宿題スレで暇つぶし http://pc8.2ch.net/test/read.cgi/tech/1115794784/427 この問題で久しぶりにビット演算を使いまくった。 やはりビット演算は楽しいなぁ 追記: 書籍「ハッカーの楽しみ」 で完全に同じソ…

v1.23

D

いつの間にかバージョンアップしてた コンパイラが落ちないって素敵ですね

v0.122

D

最近std.streamへの変更が多いなあ。 まぁ問題が出るようなところはないんで問題なし。 あとはstdinに日本語入力してもエラーが出なくなると良いんだけどなぁ。 現状だとMBSとしても受け取ることが出来ないから追記 Stream stdin = new BufferedStream(std.s…