→ PkmX: 基本上沒辦法把std::bind回傳的東西轉成func. pointer 04/29 12:17
→ PkmX: 頂多就 g1.target<decltype(std::bind(f, _1))>() 吧 04/29 12:17
→ PkmX: 好奇你幹麻不就直接用g1 = f建構就好 04/29 12:18
→ ialk: 其實我想做的事是bind一個member function 04/29 12:24
→ ialk: 然後傳給一個function pointer 04/29 12:24
→ PkmX: 基本上function pointer是沒有state的 04/29 13:02
→ PkmX: 當然如果你可以多傳一個this的話可以參考: 04/29 13:02
推 suhorng: bind 出來應該會是某種 anonymous type? 04/29 15:28
→ suhorng: 就像每個 lambda 的 type 都不一樣 04/29 15:28
→ suhorng: 我覺得可以直接傳 std::function 的話是最簡單的辦法 04/29 15:29
→ ialk: 因為我要call的API是function pointer 04/29 15:35
→ ialk: 所以想從std::function bind一個member function傳過去 04/29 15:37
推 littleshan: 如果你使用一個設計良好的API,在傳入callback時 04/29 17:29
→ littleshan: 應該還可以傳入一個void*作為額外參數 04/29 17:29
→ littleshan: 而API會把這個void*當參數去呼叫你的function pointer 04/29 17:30
→ littleshan: 這麼一來你就可以傳遞this pointer了 04/29 17:31
→ littleshan: 只是,並非所有的API設計者都有這種sense :( 04/29 17:32
→ ialk: 可惜沒有多一個參數 我也無法去修改那個API :( 04/29 17:44
→ Feis: 另一種可能就是用 template 生 wrapper 去被指 04/29 18:01