目前,我實現了兩個模板函數,每區選出一個模板函數指針使用boost ::包裹變種:模板函數返回模板函數指針
功能發
typedef boost::variant<&A<int>,&A<double>> A_T; A_T fa(string type) { switch(type){ case "int": return &A<int>; case "double": return &A<double>; default: return &A<int>; } }
功能FB
typedef boost::variant<&B<int>,&B<double>> B_T; B_T fb(string type) { switch(type){ case "int": return &B<int>; case "double": return &B<double>; default: return &B<int>; } }
我的問題是「我們可以將兩個函數合併爲一個模板函數,它將A或B的函子指針作爲模板參數嗎?」。爲什麼我需要這個的原因是因爲我可以有兩個以上的函子像A和B.
這是什麼語言?它看起來不像有效的C++代碼。我建議你生成一個[mcve] –
如果這與你的實際實現類似,你的第一步就是嘗試運行你已經通過編譯器得到的東西,並找出出現的幾個錯誤。 – aschepler