1
我試圖做這樣的事情(完全人工合成的例子,因爲真正的代碼是有點令人費解):從模板作爲模板參數類型內部使用的typedef
enum MyInfoType
{
Value1, Value2
};
template<typename T> struct My_Type_Traits
{};
template<> struct My_Type_Traits<int>
{
typedef MyInfoType InfoType;
};
template<typename T>
class Wrap
{
template<My_Type_Traits<T>::InfoType INFO> int GetInfo()
{...}
};
...
Wrap<int> w;
int info = w.GetInfo<Value1>();
所以基本上我試圖從另一個結構中使用typedef作爲模板參數的類型。有了這段代碼,編譯器卻抱怨說struct My_Type_Traits<T>::InfoType is not a type
。那麼,我需要做些什麼才能做到這一點?