
Hi Luke,
** The polygon_data type should be mutable (i.e. support things like push_back()), or a mutable version should be provided, or std::vector/list<point_data> should work with minimal traits specialisation.
The example custom_polygon.cpp shows the traits for a list<CPoint>. I could make all containers of points models of polygons_concept by default, but I wouldn't know which polygon concept the user prefers.
A mere container of points should be a model of the most general polygon concept (which is polygon_concept)
I also found that polygon_data is specialised by the coordinate type, not the point type, so anyone using their own point type will have to provide their own polygon type. Is there some reason why I can't have polygon_data<my_point>? Again, making it easier to use std::container<my_point> would help.
Point type is a trait.
Can you elaborate in your response? If I have struct my_point { float x,y; } How do I create a "polygon_data" that uses that point type? AFAICT that is just not possible.
** extents() and center() should return their results, rather than using an output reference.
Out parameters and equational reasoning have been discussed elsewhere in the review.
Yes, but I'm not sure what is your position regarding that. Can you clarify it? Best -- Fernando Cacciola SciSoft Consulting, Founder http://www.scisoft-consulting.com