%module template_enum_typedef %warnfilter(SWIGWARN_RUBY_WRONG_NAME) oss::etraits; /* Ruby, wrong class name */ %inline %{ namespace oss { enum Polarization { UnaryPolarization, BinaryPolarization }; template struct Interface_ { }; struct etraits { static const Polarization pmode = UnaryPolarization; }; template struct Module { typedef Traits traits; static const Polarization P = traits::pmode; void get(Interface_

arg) { }; // Here P is only replace by traits::pmode }; } %} namespace oss { %template(Interface_UP) Interface_; %template(Module_UP) Module; }