%module template_using_directive_typedef %inline %{ namespace space { template<typename T> class Vector {}; class VectorClass {}; } struct Obj {}; %} %template(Vector_Obj) space::Vector<Obj>; %inline %{ namespace tns { using space::Vector; // template using directives were not being added into the typedef table using space::VectorClass; typedef Vector<Obj> NSVec; } %} %inline %{ namespace tns { struct Holder { // using Vec = Vector<Obj>; typedef Vector<Obj> Vec; typedef VectorClass VecClass; Vec items; void holder_use1(space::Vector<Obj>, tns::NSVec, tns::Vector<Obj>) {} void holder_use2(space::Vector<Obj>, NSVec, Vector<Obj>) {} void holder_use3(tns::Holder::Vec, Holder::Vec, Vec) {} }; void tns_holder_use(tns::Holder::Vec, Holder::Vec) {} void tns_use(space::Vector<Obj>, NSVec, tns::NSVec) {} } void global_holder_use(tns::Holder::Vec) {} void global_use(space::Vector<Obj>, tns::NSVec, tns::Vector<Obj>) {} namespace ns1 { void ns1_holder_use(tns::Holder::Vec) {} } namespace ns2 { using namespace tns; void ns2_holder_use(tns::Holder::Vec, Holder::Vec, NSVec, Vector<Obj>) {} } %}
Generated by dwww version 1.15 on Tue Jul 2 00:40:44 CEST 2024.