Re: [問題] Obj-C++ and template

看板MacDev作者 (←這人是超級笨蛋)時間10年前 (2013/09/21 20:42), 編輯推噓5(505)
留言10則, 4人參與, 最新討論串2/3 (看更多)
之前在 C/C++ 板就看你不知道在問什麼 原來是想用在 block 上, 難怪說是 C 限定 你為何不一開始就說出完整需求就好啦... 既然是要用在 block 上那麼 macro 解也不可行了 ※ 引述《leondemon (狗狗)》之銘言: : 想在專案中使用 C++ 的 template功能 : 來讓一個 block 可以接受和回傳一個 undefined_type : 請問是要怎麼實作呢? 可以像下面這樣宣告嗎? : template<class T> : typedef T (^Block)(T input); 不行, Objective-C++ 不支援混合語法 C++ template 本身沒有實體 (他只是, 顧名思義, 函式的「範本」, 不是函式) 所以也不能傳 template function pointer 你可能必須考慮使用別的設計模式 如果把你的 use case 講清楚, 會比較能推薦好的解法 : 另外 哪邊有不錯的 Obj-C++ 的教學? : 我把一個 Obj-C 的 .m 檔改成了 .mm 檔之後 : 就發生了 Undefined symbols for architecture i386 的 linker error : 改回 .m 檔卻又可以執行... -- 「我最想要的同伴嘛,首先是要笑口常開,其次是我們能永遠不會發生誤會。 如果這些都能辦到的話,嗯,如果他是世界上第一流的橋手,也還不錯。」 -- 班尼多‧加羅素,前義大利藍隊成員 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.81.146

09/21 20:59, , 1F
謝謝 ^^ 因為想說這應該是 C 的問題 所以在那邊就沒提
09/21 20:59, 1F

09/21 21:02, , 2F
我以為 block 也可以在 C++ 裡面用...
09/21 21:02, 2F

09/21 23:13, , 3F
其實template block...我還真想不到哪裡非用這種不可@@
09/21 23:13, 3F

09/21 23:13, , 4F
block其實就是lambda 就是個只需要用一次用過即丟的東西
09/21 23:13, 4F

09/22 23:21, , 5F
C++11 有自己的block 語法。
09/22 23:21, 5F

09/22 23:22, , 6F
www.cprogramming.com/c++11/c++11-lambda-closures.html
09/22 23:22, 6F

09/22 23:50, , 7F
lambda 不能搭配 template 使用, 對原 po 的需求毫無幫助
09/22 23:50, 7F

09/23 03:33, , 8F
這個我倒是很樂觀clang會把它們整合在一起....
09/23 03:33, 8F

09/23 03:33, , 9F
不過我還是想不出有什麼原因會讓你不用templated func
09/23 03:33, 9F

09/23 03:33, , 10F
而非得搞個templated lambda不可 =P
09/23 03:33, 10F
文章代碼(AID): #1IFPGOQs (MacDev)
討論串 (同標題文章)
文章代碼(AID): #1IFPGOQs (MacDev)