summaryrefslogtreecommitdiff
path: root/Examples/test-suite/ignore_template_constructor.i
diff options
context:
space:
mode:
Diffstat (limited to 'Examples/test-suite/ignore_template_constructor.i')
-rw-r--r--Examples/test-suite/ignore_template_constructor.i45
1 files changed, 45 insertions, 0 deletions
diff --git a/Examples/test-suite/ignore_template_constructor.i b/Examples/test-suite/ignore_template_constructor.i
new file mode 100644
index 0000000..ffd5419
--- /dev/null
+++ b/Examples/test-suite/ignore_template_constructor.i
@@ -0,0 +1,45 @@
+%module ignore_template_constructor
+%include std_vector.i
+
+#if defined(SWIGJAVA) || defined(SWIGCSHARP) || defined(SWIGPYTHON) || defined(SWIGPERL) || defined(SWIGRUBY)
+#define SWIG_GOOD_VECTOR
+%ignore std::vector<Flow>::vector(size_type);
+%ignore std::vector<Flow>::resize(size_type);
+#endif
+
+#if defined(SWIGTCL) || defined(SWIGPERL)
+#define SWIG_GOOD_VECTOR
+/* here, for languages with bad declaration */
+%ignore std::vector<Flow>::vector(unsigned int);
+%ignore std::vector<Flow>::resize(unsigned int);
+#endif
+
+#if defined(SWIG_GOOD_VECTOR)
+%inline %{
+class Flow {
+ Flow() {}
+public:
+ Flow(double d) {}
+};
+%}
+
+#else
+/* here, for languages with bad typemaps */
+
+%inline %{
+class Flow {
+public:
+ Flow() {}
+ Flow(double d) {}
+};
+%}
+
+#endif
+
+%template(VectFlow) std::vector<Flow>;
+
+%inline %{
+std::vector<Flow> inandout(std::vector<Flow> v) {
+ return v;
+}
+%}