Re: [問題] template問題
看板C_and_CPP (C/C++)作者littleshan (我要加入劍道社!)時間14年前 (2011/12/23 11:47)推噓1(1推 0噓 3→)留言4則, 2人參與討論串2/3 (看更多)
※ 引述《tyc5116 (累人啊....)》之銘言:
: 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.
: 對這句話的意思不清楚,可以麻煩解釋一下嗎? 謝謝
如果你只寫 foo(mc1, mc2)
表示 compiler 需要尋找出適當的 T1 和 T2
使得 RParam<T1>::Type 剛好等於 MyClass1
而且 RParam<T2>::Type 又等於 MyClass2
不但需要花很多時間,而且符合條件的 T1 與 T2 還可能有許多組答案
所以 compiler 會拒絕進行推導
直接要你提供正確的 T1 與 T2
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.3.139
→
12/23 14:28, , 1F
12/23 14:28, 1F
→
12/23 14:28, , 2F
12/23 14:28, 2F
推
12/23 14:32, , 3F
12/23 14:32, 3F
→
12/23 14:33, , 4F
12/23 14:33, 4F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章