Classe générique et problème de multiple définition
Bonjour
J'ai un problème lors du développement d'une classe j'ai eu à surchargé l'opérateur '==' mais je voudrais surchargé de manière différence si je suis face à un float, double ou long double :
voici ma classe
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| template <class T>
class A
{
T x;
bool operator==(const A<T>&) const;
};
template <class T>
bool A<T>::operator==(const A<T>& a) const
{
return a.x == x;
}
template <>
bool A<float>::operator==(const A<float>& a) const
{
return std::abs(a.x - x) <= std::numeric_limits<float>::epsilon();
}
typedef A<int> iA;
typedef A<unsigned int> uiA;
typedef A<short> sA;
typedef A<long> lA;
typedef A<float> fA;
typedef A<double> dA;
typedef A<long double> ldA; |
Comme vous le voyez à cause des typedef j'ai une multiple définition. Est-ce que vous voyez une solution tout en bénificiant des avantages de la "généricité". Merci