我想創建一個處理整數,雙精度和字符串的泛型類。然而,試圖實例化模板類時,我得到了以下錯誤消息:雙模板類型?
error: 'double' is not a valid type for a template constant parameter
實例化運作爲int類型完全沒問題,一樣的內部代碼,雖然我還沒有去到字符串類型尚未。看起來好像這應該沒問題,因爲你可以實例化向量等。有什麼我在這裏失蹤?
// file forest.h
template<typename NODETYPE> class Forest
{
template<NODETYPE> // Line 15
friend Forest<NODETYPE>& operator+(Forest<NODETYPE>& f1,
Forest<NODETYPE>& f2);
template<NODETYPE> // Line 17
friend ostream& operator<<(ostream& output,
const Forest<NODETYPE>& f1);
template<NODETYPE> // Line 19
friend void outputHelper(ostream& output,
const ForestNode<NODETYPE>& currentNode,
int depth);
/* ... */
};
錯誤發生如下:
\project 4\forest.h|341|instantiated from here|
\project 4\forest.h|15|error: 'double' is not a valid type for a template constant parameter|
\project 4\forest.h|17|error: 'double' is not a valid type for a template constant parameter|
\project 4\forest.h|19|error: 'double' is not a valid type for a template constant parameter|
@joedillian:「有什麼我在這裏失蹤?」 - 是的。你在你的問題中缺少一些代碼。如果您可以向我們展示一個能夠再現問題的最小代碼段,這將非常有幫助。 – 2010-10-31 21:51:17
你想要有模板類型參數,有模板常量參數還是做模板特化?他們是不同的東西。也許你打算做他們其中的一個,並做了另一個意外?請顯示一些代碼,我們會幫助你弄清楚你正在做什麼,以及你應該做什麼。 – 2010-10-31 21:53:08
說實話,我真的不知道如何製造這個錯誤的縮影。上次我發佈時,我被告知我沒有收到任何幫助,因爲我的代碼示例太大。現在我被告知我會被忽略,因爲我無法提供代碼。 : - /我會暫時發佈我的全部代碼。 – joedillian 2010-10-31 21:59:24