Я пытаюсь сделать что-то вроде этого (полностью синтетический пример, потому что настоящий код немного запутанный):
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
. Итак, что мне нужно сделать, чтобы эта работа?