Je suis en train de faire quelque chose comme ceci (exemple complètement synthétique, car le code réel est un peu à alambiqué):En utilisant typedef à l'intérieur d'un modèle en tant que type d'argument modèle
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>();
Donc, fondamentalement, je suis essayer d'utiliser un typedef à l'intérieur d'une autre structure en tant que type d'un paramètre de modèle. Avec ce code cependant le compilateur se plaint que struct My_Type_Traits<T>::InfoType is not a type
. Alors, que dois-je faire pour que cela fonctionne?