aboutsummaryrefslogtreecommitdiff
path: root/Examples/test-suite/template_nested.i
diff options
context:
space:
mode:
Diffstat (limited to 'Examples/test-suite/template_nested.i')
-rw-r--r--Examples/test-suite/template_nested.i19
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>;