summaryrefslogtreecommitdiff
path: root/Examples/test-suite/template_rename.i
diff options
context:
space:
mode:
Diffstat (limited to 'Examples/test-suite/template_rename.i')
-rw-r--r--Examples/test-suite/template_rename.i49
1 files changed, 49 insertions, 0 deletions
diff --git a/Examples/test-suite/template_rename.i b/Examples/test-suite/template_rename.i
new file mode 100644
index 0000000..b34e260
--- /dev/null
+++ b/Examples/test-suite/template_rename.i
@@ -0,0 +1,49 @@
+%module template_rename
+
+%warnfilter(SWIGWARN_RUBY_WRONG_NAME) Foo<int>; /* Ruby, wrong class name */
+%warnfilter(SWIGWARN_RUBY_WRONG_NAME) Foo<double>; /* Ruby, wrong class name */
+
+%rename(blah_test) Foo::blah(int);
+%rename(spam_test) Foo<int>::spam(int);
+%rename(grok_test) Foo::grok(int);
+%rename(groki_test) Foo<int>::grok(int);
+
+%inline %{
+
+template<class T> class Foo {
+public:
+ int blah(int x) { return x; }
+ int spam(int x) { return x; }
+ int grok(int x) { return x; }
+};
+
+%}
+
+%template(iFoo) Foo<int>;
+%template(dFoo) Foo<double>;
+
+
+// Testing ignore
+
+%ignore std::tvector<Flow>::tvector(size_type);
+
+%inline %{
+
+namespace std {
+
+ template<class T> class tvector {
+ public:
+ typedef size_t size_type;
+ tvector() {}
+ tvector(size_type n) { T t = T(); }
+ };
+}
+
+class Flow {
+ Flow() {}
+public:
+ Flow(double d) {}
+};
+%}
+
+%template(VectFlow) std::tvector<Flow>;