| %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> typename T::Number twoblah(T &obj) { | |
| return 2*(obj.blah()); | |
| } | |
| Bar::Number spam() { return 3; } | |
| %} | |
| %template(twoFoo) twoblah<Foo>; | |
| %template(twoBar) twoblah<Bar>; | |