summaryrefslogtreecommitdiff
path: root/Examples/test-suite/template_classes.i
diff options
context:
space:
mode:
Diffstat (limited to 'Examples/test-suite/template_classes.i')
-rw-r--r--Examples/test-suite/template_classes.i52
1 files changed, 52 insertions, 0 deletions
diff --git a/Examples/test-suite/template_classes.i b/Examples/test-suite/template_classes.i
new file mode 100644
index 0000000..a05eb9b
--- /dev/null
+++ b/Examples/test-suite/template_classes.i
@@ -0,0 +1,52 @@
+/* File : template_classes.i */
+/* Tests the use of one templated class within another */
+
+%module template_classes
+
+
+#pragma SWIG nowarn=SWIGWARN_PARSE_NESTED_CLASS
+
+%{
+%}
+
+%inline %{
+
+template <class T>
+class Point {
+public:
+ T getX() {return x;}
+private:
+ T x;
+};
+
+template <class T>
+class RectangleTest {
+public:
+ Point<T>& getPoint() {return point;}
+ void setPoint(Point<T>& value) {point = value;}
+private:
+ Point<T> point;
+
+
+ template <class Data>
+ struct pair2nd_eq
+ {
+ };
+
+
+
+
+ struct Foo : Point<int>
+ {
+ };
+
+ Foo foo;
+
+};
+
+%}
+
+%template(PointInt) Point<int>;
+%template(RectangleInt) RectangleTest<int>;
+
+