Más de C++

Siento ser tan pesado, pero es en lo que estoy trabajando últimamente. En el último post incluí una manera de tratar de igual forma a un Pango::Rectangle y un Gdk::Rectangle teniendo en cuenta que tienen el mismo interfaz. Pues bien, se me ocurrió hacer una cosa parecida para encontrar el punto medio de un rectángulo. El punto medio se retorna como las coordenadas x e y de un nuevo rectángulo devuelto:


template <class Rect> Rect
middleOfRect(Rect& r)
{
Rect _r;

_r.set_x(r.get_x() + r.get_width() / 2);
_r.set_y(r.get_y() + r.get_height() / 2);

return _r;
}


Sé que estamos en verano y todo eso, pero precisamente por ello, os dejo un reto. Esta función tiene un problema que hace que en C++ no funcione con _ciertos_ valores de clase Rect (y no me refiero al hecho del redondeo en la división, etc.) ¿Sabéis cuál es? Mañana, si nadie lo ha sacado, publicaré la solución. Como pista diré que es un problema intrínseco de los templates de C++.

blog comments powered by Disqus