2005-05-01から1ヶ月間の記事一覧
D言語の新たに追加されたiftype文ですけど、これは暗黙的な変換を許容します。 たとえば template eq(A,B){ iftype(A:B){pragma(msg,"0");} else{pragma(msg,"1");} }というコードを実行すると0が表示されます。 暗黙的変換を許容するって便利なことも多いけ…
さてと前回書いたtemplateだけじゃ何の役に立つか全然分かりません。 なのでどういう時に使うか書いておきます。 まず一番の利点は、pragma(msg)に出力できることです 残念ながらpragma(msg)は文字列しか出力できません。 なので前回のtoStringによって文字…
さてと、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…
うわー。 iftypeとstatic ifってなにそれw コンパイルタイムプログラミング万歳 あとはboxingも追加か。 こっちは暗黙的ではなくて自分でboxingするのがメンドクサー 気持ち的にはboost::anyみたいな感じですね 今回のバージョンは面白そうですね 追記 えー…
[その他] 学校のプログラミング演習が退屈なので宿題スレで暇つぶし http://pc8.2ch.net/test/read.cgi/tech/1115794784/427 この問題で久しぶりにビット演算を使いまくった。 やはりビット演算は楽しいなぁ 追記: 書籍「ハッカーの楽しみ」 で完全に同じソ…
いつの間にかバージョンアップしてた コンパイラが落ちないって素敵ですね
最近std.streamへの変更が多いなあ。 まぁ問題が出るようなところはないんで問題なし。 あとはstdinに日本語入力してもエラーが出なくなると良いんだけどなぁ。 現状だとMBSとしても受け取ることが出来ないから追記 Stream stdin = new BufferedStream(std.s…