diff options
Diffstat (limited to 'Examples/test-suite/template_nested.i')
-rw-r--r-- | Examples/test-suite/template_nested.i | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/Examples/test-suite/template_nested.i b/Examples/test-suite/template_nested.i index 1bb1c686a..bbca9502c 100644 --- a/Examples/test-suite/template_nested.i +++ b/Examples/test-suite/template_nested.i @@ -2,13 +2,6 @@ // Test nested templates - that is template classes and template methods within a class. -%warnfilter(SWIGWARN_PARSE_NAMED_NESTED_CLASS) ns::OuterClass::Inner1; -%warnfilter(SWIGWARN_PARSE_NAMED_NESTED_CLASS) ns::OuterClass::Inner2; -%warnfilter(SWIGWARN_PARSE_NAMED_NESTED_CLASS) ns::OuterTemplate::NestedInnerTemplate1; -%warnfilter(SWIGWARN_PARSE_NAMED_NESTED_CLASS) ns::OuterTemplate::NestedInnerTemplate2; -%warnfilter(SWIGWARN_PARSE_NAMED_NESTED_CLASS) ns::OuterTemplate::NestedInnerTemplate3; -%warnfilter(SWIGWARN_PARSE_NAMED_NESTED_CLASS) ns::OuterTemplate::NestedStruct; - namespace ns { template <class T> struct ForwardTemplate; } @@ -33,7 +26,13 @@ namespace ns { template <class T> struct NormalTemplate { void tmethod(T t) {} }; +} +%} +%template(T_NormalTemplateNormalClass) ns::NormalTemplate<ns::NormalClass>; +%template(T_NormalTemplateInt) ns::NormalTemplate<int>; +%inline %{ +namespace ns { class OuterClass { public: template <class T> struct Inner1 { @@ -70,6 +69,7 @@ namespace ns { }; }; Inner2<int> useInner2(const Inner2<int>& inner) { return inner; } + Inner2<NormalClass> useInner2Again(const Inner2<NormalClass>& inner) { return inner; } int iii; }; struct ABC { @@ -108,9 +108,10 @@ namespace ns { %} -%template(T_NormalTemplateNormalClass) ns::NormalTemplate<ns::NormalClass>; %template(T_OuterTMethodNormalClass) ns::OuterClass::InnerTMethod<ns::NormalClass>; %template(T_TemplateFuncs1Int) ns::TemplateFuncs::templateMethod1<int>; %template(T_TemplateFuncs2Double) ns::TemplateFuncs::templateMethod2<double>; %template(T_NestedOuterTemplateDouble) ns::OuterTemplate<double>; - +%template(T_OuterClassInner1Int) ns::OuterClass::Inner1<int>; +%template(T_OuterClassInner2NormalClass) ns::OuterClass::Inner2<ns::NormalClass>; +%template(T_OuterClassInner2Int) ns::OuterClass::Inner2<int>; |