Tenir compte de ce code:Typedefs et la spécialisation du modèle
typedef int type1;
typedef int type2;
template <typename>
struct some_trait;
template <>
struct some_trait<type1>
{
static const int something=1;
};
template <>
struct some_trait<type2>
{
static const int something=2;
};
Il échoue parce que ce que le compilateur voit est deux spécialisations de some_trait<int>
.
Quel est le meilleur moyen de contourner ce problème?
Comment attendez-vous une réponse à * quelle est la meilleure façon de contourner ce * lorsque vous? n'avez pas défini votre problème? C'est une erreur courante: poser une question sur une approche défaillante plutôt que de poser une question sur le problème réel. Qu'est-ce que vous voulez résoudre? Qu'est-ce qui vous a poussé à ajouter un caractère à 'type1' et' type2'? Pourquoi avez-vous besoin de deux 'int's pour être différent? - Le plus grand pas vers une réponse est de poser la bonne question. –