%module("templatereduce") template_typedef_ptr %warnfilter(SWIGWARN_RUBY_WRONG_NAME) Test; /* Ruby, wrong constant name */ /* Use the "templatereduce" feature to force swig to reduce the template typedef as much as possible. This fixes cases like this one, but it can prevent some typemaps from working. */ %inline %{ struct C{}; typedef C* pC; template struct Test { Test (A a, B b) { } }; template struct Test { Test (B* a) { } }; %} %template(test_pC) Test;