Visual Studio 6 Compiler Error

John, Is there a reason that the fill_and_stroke() and

    > render_lines_path() methods of RendererAgg need to be
    > templated? As far as I can tell, the template type is always
    > agg::path_storage.

In RendererAgg::draw_ellipse (unused I think) it's an agg::ellipse.
It could be use to fill and stroke a transformed path, or a
transformed curve path (for splines). So it is not needed in the
current implementation, but is generally useful.

If you need to remove the template arg it to make VC6 work, that's
fine. I would have thought that explicitly passing the instantiation
type would be about the same.



I've been thinking about ways to preserve the templated-ness of RendererAgg's _fill_and_stroke() and _render_lines_path() while placating the VC++6 gods. Looking at the situation from a relatively fresh perspective, it seems that the simplest solution is to inline the definitions of those member function templates inside the class. However, I cannot for the life of me rember if you/I/we already tried this. Sourceforge's website is down right now and I don't have my laptop handy, so I cannot check the archive of matplotlib-devel.

Attached is a patch that inlines the aformentioned methods. If this is a known dead-end and I've forgotten that then please disregard it. Otherwise, please let me know if it does the trick. I'm going to start working on a more complicated and less general solution now.


backendAggCppInlineMethods-svn2309.patch (5.58 KB)