diff options
Diffstat (limited to 'Examples/test-suite/template_using_member_default_arg.i')
-rw-r--r-- | Examples/test-suite/template_using_member_default_arg.i | 33 |
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>; |