%module "typename" // Tests the typename handling in templates. %inline %{ class Foo { public: typedef double Number; Number blah() { return 2.1828; } }; class Bar { public: typedef int Number; Number blah() { return 42; } }; template typename T::Number twoblah(T &obj) { return 2*(obj.blah()); } Bar::Number spam() { return 3; } %} %template(twoFoo) twoblah; %template(twoBar) twoblah;