Probaste pasar:
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;
}

¿al .cpp?


sds
On 9/20/07, Gonzalo Merayo <[EMAIL PROTECTED]> wrote:
> No me insultes...pero tenes un #endif al final del .h?
>
> On 9/20/07, personaje <[EMAIL PROTECTED]> wrote:
> > On 9/19/07, Francisco Dibar <[EMAIL PROTECTED]> wrote:
> >
> > > y fijate si tu mensaje de error es el mismo.
> > >
> >
> > claro, lo saqué de mi proyecto y no me da error (como a Uds), pero
> > encontré la vuelta: TPoint está en un .h que se incluye más de una vez
> > en distintos .cpp
> >
> > El código es el siguiente:
> >
> > ----------------8<----------------8<----------------8<----------------8<----------------8<----------------
> > #ifndef ATTRIBUTES_H_
> > #define ATTRIBUTES_H_
> >
> > #include <vector>
> > #include <string>
> > #include <math.h>
> >
> > //! Template para definir coordenadas de imagen
> > /**
> >  *  Es un template que define una coordenada en el plano 2D.
> >  */
> > template <class T>
> > class TPoint
> > {
> > public:
> >         //! Constructor
> >    TPoint(T X=0,T Y=0):x_(X),y_(Y){};
> >    //! Operador de copia que acepta cualquier TPoint y castea al dato propio
> >    template <class T2>
> >    TPoint(const TPoint<T2> &Point)
> >                 
> > {x_=static_cast<T>(Point.GetX());y_=static_cast<T>(Point.GetY());};
> >    //! Acceso a X
> >    T GetX()const{return x_;}
> >    //! Acceso a Y
> >    T GetY()const{return y_;}
> >    //! Modificacion de X
> >    void SetX(T x){x_=x;}
> >    //! Modificacion de Y
> >    void SetY(T y){y_=y;}
> > private:
> >    T x_;        ///< Coordenada X
> >    T y_;        ///< Coordenada Y
> > };
> >
> > // Operador == para el TPoint
> > template <class T1,class T2>
> > bool operator==(TPoint<T1> PointA,TPoint<T2> PointB)
> > {
> >         return ((PointA.GetX()==PointB.GetX()) && 
> > (PointA.GetY()==PointB.GetY()));
> > }
> >
> > #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;
> > }
> >
> > // Operador != para el TPoint
> > template <class T1,class T2>
> > bool operator!=(TPoint<T1> PointA,TPoint<T2> PointB)
> > {
> >         return !(PointA==PointB);
> > }
> > ----------------8<----------------8<----------------8<----------------8<----------------8<----------------
> >
> > que anda para el caso de 1 .cpp que lo incluya, pero no para el caso
> > de 2 o más... acá es donde demuestro mi incompetencia... por qué pasa?
> >
> > Saludos
> >
> > _______________________________________________
> > Lista de correo Programacion.
> > [email protected]
> > http://listas.fi.uba.ar/mailman/listinfo/programacion
> >
>

_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion

Responder a