Buenas gente,
Tengo un problemita, estoy overlodeando el operador == para una clase
template que tengo, pero cuando lo trato de especializar me tira que
ya está definido. El código es el siguiente:
------------>B------------>B------------>B------------>B------------>B------------>B------------
// Operador == para el TPoint
template <class T1,class T2>
bool operator==(TPoint<T1> PointA,TPoint<T2> PointB)
{
if(PointA.GetX()==PointB.GetX() && PointA.GetY()==PointB.GetY())
return true;
return false;
}
#define EPSILON 0.000000001
// Operador == para el TPoint especializado en RealPoint
template <>
bool operator==(TPoint<double> PointA,TPoint<double> PointB)
{
if ( fabs(PointA.GetX()-PointB.GetX())<EPSILON &&
fabs(PointA.GetY()-PointB.GetY())<EPSILON )
return true;
return false;
}
------------8<------------8<------------8<------------8<------------8<------------8<------------
TPoint es un template y tiene los métodos de acceso a X e Y (un punto
2D), lo tengo definido para int, y double (y otros, pero para el
ejemplo alcanza), el problema es que no puedo usar == para double
(está bien cómo lo hago?)
Quiero que para cuando haga la comparación entre dos TPoint
especializados en double me utilize la segunda versión... pero, como
dije arriba, se me queja que ya se encuentra definido...
qué estoy haciendo mal?
Saludos
_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion