| %module template_default_cache; |
| |
| %inline %{ |
| namespace d { |
| template< typename T > class d {}; |
| } |
| %} |
| |
| %ignore ns_a::iface1::Model; |
| |
| %inline %{ |
| namespace ns_a { |
| namespace iface1 { |
| class Model {}; |
| typedef d::d<Model> ModelPtr; |
| } |
| using iface1::ModelPtr; |
| } |
| %} |
| |
| %inline %{ |
| namespace ns_b { |
| namespace iface1 { |
| class Model { |
| public: |
| ns_a::ModelPtr foo() { return ns_a::ModelPtr(); }; |
| }; |
| typedef d::d<Model> ModelPtr; |
| ns_a::ModelPtr get_mp_a() { return ns_a::ModelPtr(); } |
| ModelPtr get_mp_b() { return ModelPtr(); } |
| } |
| } |
| %} |
| %template(AModelPtr) d::d<ns_a::iface1::Model>; |
| %template(BModelPtr) d::d<ns_b::iface1::Model>; |