%module rename_scope %inline %{ namespace oss { enum Polarization { UnaryPolarization, BinaryPolarization }; template struct Interface { }; } %} namespace oss { // Interface %template(Interface_UP) Interface; %template(Interface_BP) Interface; } %inline %{ namespace oss { namespace interfaces { template struct Natural : Interface

{ int test(void) { return 1; } }; } } %} namespace oss { namespace interfaces { %rename(rtest) Natural::test; %rename(rtest) Natural::test; // Natural %template(Natural_UP) Natural; %template(Natural_BP) Natural; } }