summaryrefslogtreecommitdiff
path: root/Examples
diff options
context:
space:
mode:
authorWilliam S Fulton <wsf@fultondesigns.co.uk>2022-12-22 18:32:02 +0000
committerWilliam S Fulton <wsf@fultondesigns.co.uk>2022-12-22 21:23:44 +0000
commitf648e58cb1062984b77946d0ebf9ea2778c933d2 (patch)
tree0d5ca46924b18c142feb7c5417377b464d01d300 /Examples
parent67c4c2186cd7e7d47bb7e372f9dc07ec8c4af3e6 (diff)
downloadswig-f648e58cb1062984b77946d0ebf9ea2778c933d2.tar.gz
Extend variadic template support to various type combinations
Diffstat (limited to 'Examples')
-rw-r--r--Examples/test-suite/cpp11_variadic_templates.i17
1 files changed, 17 insertions, 0 deletions
diff --git a/Examples/test-suite/cpp11_variadic_templates.i b/Examples/test-suite/cpp11_variadic_templates.i
index e561ad805..9ea11368e 100644
--- a/Examples/test-suite/cpp11_variadic_templates.i
+++ b/Examples/test-suite/cpp11_variadic_templates.i
@@ -138,3 +138,20 @@ public:
%template (LotsInherit2) LotsInherit<A,B>;
%template (LotsInherit3) LotsInherit<A,B,C>;
%template (LotsInherit4) LotsInherit<A,B,C,D>;
+
+
+%inline %{
+template <typename... V> struct VariadicParms {
+public:
+ void ParmsPtr(V*... vparms_p) {}
+ void ParmsPtrRef(V*&... vparms_pr) {}
+ void ParmsPtrRValueRef(V*&&... vparms_rvr) {}
+ void ParmsVal(V... vparms_v) {}
+ void ParmsRef(V&... vparms_r) {}
+ void ParmsConstRef(const V&... vparms_cr) {}
+};
+%}
+
+%template(VariadicParms1) VariadicParms<A>;
+%template(VariadicParms2) VariadicParms<A,B>;
+%template(VariadicParms3) VariadicParms<A,B,C>;