看板 C_and_CPP 關於我們 聯絡資訊
template<typename T> class RParam{ public: typedef typename IfThenElse<IsClass<T>::No, T, T const&>::ResultT Type //判斷是否為Class,是Type則為T,不是Type則為ResultT template<typename T1,typaname T2> void foo(typename RParam<T1>::Type p1, typename RParam<T2>::Type p2){} int main(){ MyClass1 mc1; MyClass2 mc2; foo<MyClass1,MyClass2>(mc1,mc2); return 0; } 書上說foo無法經由引數推導 因為template parameters只出現在函式參數的qualifiers上 因此呼叫端必須明確指定templates arguments. 對這句話的意思不清楚,可以麻煩解釋一下嗎? 謝謝 p.s 程式碼有部份省略沒打,不知道這樣的表達方式夠不夠清楚 不夠的話我在補上其餘的程式碼 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.251.177.205
hylkevin:foo<MyClass1,MyClass2>(...)就是明確指定foo(...)則不是 12/24 01:45