aboutsummaryrefslogtreecommitdiff
path: root/Examples/test-suite/template_using_member_default_arg.i
diff options
context:
space:
mode:
Diffstat (limited to 'Examples/test-suite/template_using_member_default_arg.i')
-rw-r--r--Examples/test-suite/template_using_member_default_arg.i33
1 files changed, 33 insertions, 0 deletions
diff --git a/Examples/test-suite/template_using_member_default_arg.i b/Examples/test-suite/template_using_member_default_arg.i
new file mode 100644
index 000000000..117abd0ee
--- /dev/null
+++ b/Examples/test-suite/template_using_member_default_arg.i
@@ -0,0 +1,33 @@
+%module template_using_member_default_arg
+
+%inline %{
+template<typename T1, typename T2 = short>
+struct ThingA {
+ ThingA() {}
+protected:
+ void describeA() {}
+};
+template<typename T1, typename T2 = short>
+struct ThingB {
+ ThingB() {}
+protected:
+ void describeB() {}
+};
+%}
+
+%inline %{
+template<typename T1>
+struct ThingADerived : ThingA<T1> {
+ using ThingA<T1>::describeA;
+};
+template<typename T1>
+struct ThingBDerived : ThingB<T1> {
+ using ThingB<T1>::describeB;
+};
+%}
+
+%template(ThingAInt) ThingA<int>; // was okay
+%template(ThingADerivedInt) ThingADerived<int>;
+
+%template(ThingBInt) ThingB<int, short>; // was failing - using directive in this template was not found
+%template(ThingBDerivedInt) ThingBDerived<int>;