- 1 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 23:00:35 ]
- プログラミング言語 D (D Programming Language) について語るスレッドです。
過去スレは >>2 ■本家 ttp://www.digitalmars.com/d/ ttp://www.kmonos.net/alang/d/ (和訳) ■コンパイラ ttp://www.digitalmars.com/d/dcompiler.html (DMD, 本家) ttp://dgcc.sourceforge.net/ (GDC, gccフロントエンド) ttp://gdcmac.sourceforge.net/ (GDCのmac用バイナリ) ■参考URL ttp://f17.aaa.livedoor.jp/~labamba/ (D言語研究) ttp://dsource.org/ (dsource) ttp://tinyurl.com/3da5oa (C/C++に疲れた人のD言語) ttp://www.kmonos.net/alang/wnd/ (わかったつもりになるD言語) ttp://shinh.skr.jp/d/ (SDL, SDL_*, OpenGL, GLU, glutのポーティングとか) ttp://shoo.s20.xrea.com/shoo/programing (D言語とTangoの入門講座)
- 558 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 18:56:03 ]
- >>555
delegateは実はただの構造体のようなもの。 TR delegate(TA) toDelegate(TR, TA...)(TR function(TA) fn) { typeof(return) dg; dg.ptr = null; dg.funcptr = fn; return dg; }
- 559 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 19:07:24 ]
- >>558
それスタックずれる
- 560 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 19:13:03 ]
- じゃあこうかな
TR delegate(TA) toDelegate(TR, TA...)(TR function(TA) fn) { return delegate TR(TA args){ return fn(args); }; }
- 561 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 21:49:56 ]
- private struct FunctionCaller(R, A...)
{ R call(A args) { return (cast(R function (A))this)(args); } } R delegate (A) todg(R, A...)(R function (A) func) { FunctionCaller!(R, A) c = void; auto res = &c.call; res.ptr = cast(void*)func; return res; }
|

|