fixed %template within %extend, test added
fixed language symbol table nested classes name separator, test added fixed %feature "flatnested" working with %extend fixed Swig_offset_string for empty string added simple template to save/restore values in current scope (readability reasons)
This commit is contained in:
parent
8dba8b1fde
commit
b4fef06c42
12 changed files with 55 additions and 39 deletions
|
|
@ -29,6 +29,7 @@ public class template_nested_runme {
|
|||
OuterClass.T_OuterClassInner2NormalClass inner2 = new OuterClass.T_OuterClassInner2NormalClass();
|
||||
inner2.setEmbeddedVar(2);
|
||||
OuterClass.T_OuterClassInner2NormalClass inner22 = new OuterClass().useInner2Again(inner2);
|
||||
OuterClass.T_OuterClassInner1Double inner3 = new OuterClass.T_OuterClassInner1Double();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -167,10 +167,16 @@ struct Outer {
|
|||
///////////////////////////////////////////
|
||||
typedef struct InnerSameName {
|
||||
Integer x;
|
||||
struct InnerSameName2 {};
|
||||
} InnerSameName;
|
||||
|
||||
InnerSameName* makeInnerSameName() { return 0; }
|
||||
};
|
||||
#if defined(SWIGCSHARP) || defined (SWIGJAVA)
|
||||
// place a class with the same name as in Outer in global scope, to test language symbol table
|
||||
class InnerSameName {};
|
||||
class InnerSameName2 {};
|
||||
#endif
|
||||
%}
|
||||
|
||||
// Ignore nested struct instance
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@ namespace ns {
|
|||
%}
|
||||
%template(T_NormalTemplateNormalClass) ns::NormalTemplate<ns::NormalClass>;
|
||||
%template(T_NormalTemplateInt) ns::NormalTemplate<int>;
|
||||
%template(T_NormalTemplateDouble) ns::NormalTemplate<double>;
|
||||
|
||||
%inline %{
|
||||
namespace ns {
|
||||
|
|
@ -70,6 +71,9 @@ namespace ns {
|
|||
};
|
||||
Inner2<int> useInner2(const Inner2<int>& inner) { return inner; }
|
||||
Inner2<NormalClass> useInner2Again(const Inner2<NormalClass>& inner) { return inner; }
|
||||
#ifdef SWIG
|
||||
%template(T_OuterClassInner1Double) Inner1<double>;
|
||||
#endif
|
||||
int iii;
|
||||
};
|
||||
struct ABC {
|
||||
|
|
@ -105,8 +109,10 @@ namespace ns {
|
|||
NestedStruct useNestedStruct(const NestedStruct& inner) { return inner; }
|
||||
};
|
||||
}
|
||||
|
||||
%}
|
||||
%extend ns::OuterClass {
|
||||
%template(T_OuterClassInner2Double) Inner2<double>;
|
||||
}
|
||||
|
||||
%template(T_OuterTMethodNormalClass) ns::OuterClass::InnerTMethod<ns::NormalClass>;
|
||||
%template(T_TemplateFuncs1Int) ns::TemplateFuncs::templateMethod1<int>;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue