[C++-sig] Re: pyste and template functions
John Hunter
jdhunter at ace.bsd.uchicago.edu
Tue Nov 9 16:47:46 CET 2004
>>>>> "David" == David Abrahams <dave at boost-consulting.com> writes:
David> I'm not sure what you're doing that isn't working, though.
David> You only showed what worked.
Oops. I tried following the approach for template classes
Intersect = Template("agg::intersect_rectangles", "agg_basics.h")
Intersect("agg::rect", "intersect_rectangles")
Intersect("agg::rect_d", "intersect_rectangles_d")
where the signature for the template function intersect_rectangles is
template<class Rect>
inline Rect intersect_rectangles(const Rect& r1, const Rect& r2)
pyste generates the following code (line number 321 marked for
compiler error reference below)
321-> typedef agg::intersect_rectangles< agg::rect > intersect_rectangles;
void __instantiate_intersect_rectangles()
{ sizeof(intersect_rectangles); }
typedef agg::intersect_rectangles< agg::rect_d > intersect_rectangles_d;
void __instantiate_intersect_rectangles_d()
{ sizeof(intersect_rectangles_d); }
which causes gccxml to die with
/tmp/tmpcfn9df.h:321: error: syntax error before `;' token
/tmp/tmpcfn9df.h: In function `void __instantiate_intersect_rectangles()':
/tmp/tmpcfn9df.h:323: error: ISO C++ forbids applying `sizeof' to an expression
of function type
where line 321 is indicated above.
I assumed thusly that pyste either did not handle template functions
or at least I didn't know how to handle them in pyste, so I reverted
to the module_code I mentioned above.
Thanks!
JDH
More information about the Cplusplus-sig
mailing list