Add missing template_using_directive_typedef.i test file

This commit is contained in:
William S Fulton 2017-08-16 22:15:17 +01:00
parent 1132bc334b
commit 9f454234b1
1 changed files with 44 additions and 0 deletions

View File

@ -0,0 +1,44 @@
%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>) {}
}
%}