5
template <class T>
struct ABC
{
typedef typename T* pT;
};
int main(){}
上面這段代碼提供了錯誤錯誤在簡單的模板代碼
expected nested-name-specifier before 'T'
expected ';' before '*' token
什麼是錯的代碼示例?
template <class T>
struct ABC
{
typedef typename T* pT;
};
int main(){}
上面這段代碼提供了錯誤錯誤在簡單的模板代碼
expected nested-name-specifier before 'T'
expected ';' before '*' token
什麼是錯的代碼示例?
關鍵字typename
被禁止使用非限定名稱(不包括前::
),即使它們是從屬的。
C++ 03 [第14.6/5
]說
關鍵字類型名稱,應僅適用於合格的名稱,但這些名稱不必依賴。
pt
依賴於T,但這並不重要(在這種情況下)。
刪除typename
使您的代碼編譯。
這將是有用的:http://pages.cs.wisc.edu/~driscoll/typename.html – 2010-10-16 08:41:13