première place, le codespécialisation explicite; « Std :: hachage <_Kty> » a déjà été instancié
« fichier.h »
namespace doge
{
struct A
{
void func() = 0;
};
struct Aa : public A
{
std::string id;
void func() override {}
};
template<T>
struct Aaa: public Aa
{
T data;
void func() override {}
};
class D
{
private:
std::unordered_map<Aa,int> intMap;
std::unordered_map<Aa,std::string> stringMap;
};
}
namespace std
{
template<> struct hash<doge::Aa>
{
std::size_t operator()(const doge::Aa & key)
{
return hash<string>()(key.id);
}
};
}
Je reçois l'erreur dans le titre qui semble indiquer le code multiple pour le hash a été généré. Je reçois 2 d'entre eux dans mon message d'erreur, un pour chaque unordered_map, quelqu'un peut m'aider à identifier le problème. Merci.
explicit specialization; 'std::hash<_Kty>' has already been instantiated