爲什麼這不起作用? (!地獄的緣故)T不是班,但它是
template<class T>
class A
{
typedef typename T::value_type value_type;
public:
A();
};
我收到以下錯誤:
錯誤1個錯誤C2825: 'T':必須是一個類或命名空間時,其次是「::
但T是一堂課,我剛剛指出那不是嗎?所以有什麼問題?
謝謝。
爲什麼這不起作用? (!地獄的緣故)T不是班,但它是
template<class T>
class A
{
typedef typename T::value_type value_type;
public:
A();
};
我收到以下錯誤:
錯誤1個錯誤C2825: 'T':必須是一個類或命名空間時,其次是「::
但T是一堂課,我剛剛指出那不是嗎?所以有什麼問題?
謝謝。
T
可能是一個基本類型,這取決於你如何實例化模板...
謝謝,我沒有看到在宣佈我已經有A
在哪個模板專業化你得到這個錯誤?也許你在代碼中的某處做了類似A<int>
的事情。如果您需要更好的信息,請提供更多關於出現錯誤的專業化信息。
只是FYI:如果在從模板創建具體類時遇到相關問題,Visual C++僅引發此類錯誤。您應該能夠從錯誤消息中很容易地確定發生的情況,並查看該代碼可能會讓您有很長的路要解決這些問題。
'class'關鍵字在用於指定模板類型參數時具有不同的含義。實際上,template<class T>
和template <typename T>
是完全等價的,T可以是任何類型。編寫template<class T>
絕不會告訴編譯器T應該只是一個類的類型。
向我們展示您使用此模板的代碼。 – Thanatos 2010-09-01 19:38:16