diff options
author | William S Fulton <wsf@fultondesigns.co.uk> | 2022-12-22 18:32:02 +0000 |
---|---|---|
committer | William S Fulton <wsf@fultondesigns.co.uk> | 2022-12-22 21:23:44 +0000 |
commit | f648e58cb1062984b77946d0ebf9ea2778c933d2 (patch) | |
tree | 0d5ca46924b18c142feb7c5417377b464d01d300 /Examples | |
parent | 67c4c2186cd7e7d47bb7e372f9dc07ec8c4af3e6 (diff) | |
download | swig-f648e58cb1062984b77946d0ebf9ea2778c933d2.tar.gz |
Extend variadic template support to various type combinations
Diffstat (limited to 'Examples')
-rw-r--r-- | Examples/test-suite/cpp11_variadic_templates.i | 17 |
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>; |