On 14 October 2011 08:40, Steffen Mueller <smuel...@cpan.org> wrote: > You can get this to work with typemaps. Have a look at how Mike Sheldrake > solved this same problem (different symbol; Polygon on win32) for > Math::Clipper. Should have been a few weeks/months ago.
Thanks for the help. I wrote a typemap, which works, but only if I help xsubpp. I have the following xs: foo::group * foo::group::new() CODE: RETVAL = new foo::group; OUTPUT: RETVAL which xsubpp converts to: XS(XS_Foo__Group_new) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 1) croak_xs_usage(cv, "CLASS"); { char * CLASS = (char *)SvPV_nolen(ST(0)); foo__group * RETVAL; #line 16 "Group.xs" RETVAL = new foo::group; #line 88 "Group.c" ST(0) = sv_newmortal(); sv_setref_pv(ST(0), "Foo::Group", (void*)RETVAL); } XSRETURN(1); } which g++ doesn't like: Group.c: In function 'void XS_Foo__Group_new(PerlInterpreter*, CV*)': Group.c:84: error: 'foo__group' was not declared in this scope Group.c:84: error: 'RETVAL' was not declared in this scope If I #define foo__group foo::group then g++ is happy and everything works, but this strikes me as an evil hack. Is there a better way? Regards Jeff