%module template_default2 %warnfilter(SWIGWARN_RUBY_WRONG_NAME) oss::traits; // Ruby, wrong class name %inline %{ namespace oss { enum Polarization { UnaryPolarization, BinaryPolarization }; template struct Interface_tpl { }; struct traits { static const Polarization pmode = UnaryPolarization; }; template > // **** problem here ***** struct Module : Base { }; } %} namespace oss { %template(Interface_UP) Interface_tpl; // This works %template(Module_UP1) Module >; // These don't %template(Module_UP2) Module; %template(Module_UP3) Module; }