2013-07-12 77 views
0

假設類Data有一個本地類模板Element<i>,下面的代碼有編譯錯誤。代碼看起來很簡單,但是出了什麼問題?定義類型的本地類的類模板

template<unsigned i, class Data> 
class A 
{ 
public: 
    typedef typename Data::Element<i> ElementTy; // compilation error: token error 
}; 

回答

1

您需要template關鍵字:

typedef typename Data::template Element<i> ElementTy; 

這告訴編譯器,這個名字下面是一個模板。