|
Cur: 2012-03-31 (Sat) 20:34:53 SHOO  |
| + | 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
Counter: 1318,
today: 1,
yesterday: 0