Cur: 2012-03-31 (Sat) 20:34:53 SHOO source Edit
Line 1: Line 1:
 +TITLE:【WIP】CTFEableなPhobosのモジュール
 +* はじめに [#i909453d]
 +CTFEableっぽいPhobosモジュールが本当にCTFEableなのか気になったので調べてみました。
 +&font(Red){※編集中です};
 +
 +* std.algorithm [#yca69bdf]
 +** map [#e999315d]
 +[[Issue 6419:http://d.puremagic.com/issues/show_bug.cgi?id=6419]]のせいで動きません。
 +
 +** reduce [#ta1428d5]
 +#code(d){{{
 +reduce!fun(arg); // 動く
 +reduce!(fun1, fun2)(arg) // 動かない
 +}}}
 +
 +** fill [#zea95e80]
 +#code(d){{{
 +int[] a = [1, 2, 3, 4];
 +fill(a, 6) // memcpyを使っているので動かない
 +fill(a, [5, 6]) // 動く
 +}}}
 +
 +** filter [#za10ae8b]
 +[[Issue 6419:http://d.puremagic.com/issues/show_bug.cgi?id=6419]]のせいで動きません。
 +
 +** move [#le8e2600]
 +#code(d){{{
 +Object o1;
 +Object o2;
 +move(o1, o2); // 動く
 +static struct S{}
 +S s1;
 +S s2;
 +move(s1, s2); // memcpyを使っているので動かない
 +}}}
 +
 +** moveAll [#g1b11b4a]
 +#code(d){{{
 +int[] a = [1, 2, 3];
 +int[] b = [0, 0, 0, 0, 0];
 +moveAll(a, b);
 +assert(a == b[0..3]); // ←なぜか通らない
 +}}}
 +
 +** moveSome [#d966063d]
 +#code(d){{{
 +int[] a = [1, 2, 3, 4, 5];
 +int[] b = [0, 0, 0];
 +moveSome(a, b);
 +assert(a[0..3] == b); // ←なぜか通らない
 +}}}
 +
 +** swap [#k4307db4]
 +動きます。
 +
 +ただし、postblitを持つ構造体のインスタンスをswapに渡すと、dmdがクラッシュします。
 +
 +** splitter [#ra66786b]
 +動きます。
 +
 +* 投票とコメント [#i21a3865]
 +#vote(大変参考になった,参考になった,あまり参考にならなかった,まったく参考にならなかった,#notimestamp)
 +#pcomment
  

  • Backup diff of Articles/CTFEableなPhobosのモジュール(No. All)
    • Cur: 2012-03-31 (Sat) 20:34:53 SHOO

Front page   Edit Diff Backup Upload Copy Rename ReloadPrint View   New Page Page list Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom) Powered by xpWiki
Counter: 1318, today: 1, yesterday: 0
メインメニュー

ログイン

ユーザー名:


パスワード:





パスワード紛失  |新規登録

Menu