aboutsummaryrefslogtreecommitdiff
path: root/Examples/test-suite/template_type_collapse.i
diff options
context:
space:
mode:
Diffstat (limited to 'Examples/test-suite/template_type_collapse.i')
-rw-r--r--Examples/test-suite/template_type_collapse.i23
1 files changed, 23 insertions, 0 deletions
diff --git a/Examples/test-suite/template_type_collapse.i b/Examples/test-suite/template_type_collapse.i
new file mode 100644
index 000000000..f6459db36
--- /dev/null
+++ b/Examples/test-suite/template_type_collapse.i
@@ -0,0 +1,23 @@
+%module template_type_collapse
+
+// Not attempted yet: reference collapsing
+
+// Tests merging multiple const when instantiating template types
+%inline %{
+template <typename T> struct Conster {
+ const T *constptr;
+ Conster() : constptr() {}
+ void cccc1(T const& t) {}
+ void cccc2(const T& t) {}
+ void cccc3(const T t) {}
+ void cccc4(T const t) {}
+};
+template <typename T> struct DerivedConster : Conster<const T> {
+ const T& dddd(const T& t) {
+ return t;
+ }
+};
+%}
+%template(ConsterInt) Conster<const int>;
+%template(DerivedConsterInt) DerivedConster<const int>;
+