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

文字列からシンボル取りたい。

D

文字列からシンボルがほしいときがたまにあります。 たとえば a = 2; b = 3; assert(u!("a + b = #{a+b}") == "a + b = 5"); みたいな物を作りたいときとか。 というか今日の更新はそんなのを作ろうとして、あまりにめんどくて挫折した残骸だったり が、そん…

g++拡張

g++のキモい拡張のひとつにa >? b というのがあります a > b ? a : b の省略形ですね。 代入もついでにやるa >?= bもあります。 gccでこれが出来ないのはかなーり(´・ω・`)ショボーンです。 fmax,fminを大量に使用する場合はg++のほうが短くなるかもしれませんね。…

tie

D

絶対誰かが既に書いてそうな気がするboost::tieっぽい奴。 import std.bind : Tuple , tuple; import std.typetuple : TypeTuple; template add_pointer(T){alias T*add_pointer;} template map(alias F){alias TypeTuple!() map;} template map(alias F,T..…

const構造体のメンバ変数がconstにならない問題

D

struct Point{int x,y;} const Point p = {0,0}; const x = p.x;//error! を解決しないと構造体をtemplateに渡しても旨みがないのは言うまでもない。

D言語の欠陥

D

D言語は、なんと関数の引数に構造体を渡せません!! 以下のようなコードを実行してみましょう struct X{} template id(X x){const id = x;} const x = id!(X.init); 上のようにid関数の引数を構造体にしてインタプリタを起動してみましょう。 インタプリタ…