%module enum_template %warnfilter(SWIGWARN_RUBY_WRONG_NAME) eTest0; /* Ruby, wrong class name */ %warnfilter(SWIGWARN_RUBY_WRONG_NAME) eTest1; /* Ruby, wrong class name */ %warnfilter(SWIGWARN_RUBY_WRONG_NAME) eTest2; /* Ruby, wrong class name */ /* From bug report 992329: In Python I see >>> import enum_template >>> enum_template.MakeETest() '_60561408_p_ETest' >>> enum_template.TakeETest(0) Traceback (most recent call last): File "", line 1, in ? TypeError: Expected a pointer Without the %template, things work fine: the first function call returns an integer, and the second succeeds. */ %inline %{ enum ETest { eTest0, eTest1, eTest2 }; void TakeETest(ETest test) {} ETest MakeETest(void) {return eTest1;} template class CTempl { }; %} %template(CTempl_ETest) CTempl;