推 LPH66: 你想像中的"疊 N 層"最後是長怎樣? 02/22 22:28
感覺會出現一堆莫名其妙的東西
我用
auto fo2 =std::bind(&foAndFo, std::placeholders::_1, std::placeholders::_2);
疊到第二層了,然後把auto印出來fo2的type原型是
class std::_Binder<struct std::_Unforced, void(__cdecl*)(class
std::function<void __cdecl(int)>, int), struct std::_Ph<1> const &, struct
std::_Ph<2> const &>
哇
再往上疊還得了
※ 編輯: gino0717 (123.194.164.208), 02/22/2019 22:41:48
→ lingege32: 你最後一個std function內應該是void(fotype)吧? 02/22 23:04
→ loveme00835: 完全不知道你想幹嘛, 不過 type erasure 這件事情你 02/23 00:01
→ loveme00835: 是不是想得太複雜惹 02/23 00:02
推 suhorng: 你 bind 錯東西了, foAndFo 是哪一個函數回傳 void, 不是 02/23 10:35
→ suhorng: fo 自己啊. 當然最後不能變成 std::function<foType> 02/23 10:35
→ suhorng: 原本 foo 是 N -> void, f1 只是做 eta-expansion 最後 02/23 10:36
→ suhorng: 還是 N -> void, 但 foAndFo 就是 (N -> void) -> void了 02/23 10:37
→ suhorng: fo2 的部分做 eta-expansion 當然得是 (N -> void) -> vo 02/23 10:37
推 lc85301: 樓上 haskell 語法跑出來了XD 02/23 13:29
推 LPH66: 這裡可能真的要用這種語法才會知道原 PO 有沒有搞錯什麼 02/23 17:58
→ LPH66: 我首推其實有點想要原 PO 就用 auto 寫個疊 N 層的樣子出來 02/23 17:59
→ LPH66: 再來看看到底是不是哪裡搞混了還是怎樣的 02/23 17:59
推 rareone: Haskell XDDDDDD 03/18 10:58