2006-08-22から1日間の記事一覧

forを作ろう!

果てしなく楽しくない上に動かないよ! import std.c.stdio; struct for_{ static for_init opCall(void delegate()[] init ...){ for_init f; f.init_ = init; return f; } } struct for_init{ void delegate()[] init_; for_test opCall(bool delegate() t…

ifを作ろう!

楽しそうなタイトルです。タイトルだけっぽいです。 import std.c.stdio; struct if_{ bool delegate() cond_; void delegate()[] true_stats_; void delegate()[] false_stats_; bool delegate()[] elsif_conds_; void delegate()[][] elsif_stats_; static…

forを作ろう!その2

こっちのほうが素敵ですね。 import std.c.stdio; for__!(T) for_(T)(out T t){ for__!(T) f; f.ptr_ = &t; return f; } struct for__(T){ T* ptr_; T[] ary_; for__!(T) in_(T[] ary ...){ ary_ = ary; return *this; } void opCall(void delegate()[] stat…