summaryrefslogtreecommitdiff
path: root/Examples/test-suite/template_specialization_enum.i
diff options
context:
space:
mode:
Diffstat (limited to 'Examples/test-suite/template_specialization_enum.i')
-rw-r--r--Examples/test-suite/template_specialization_enum.i63
1 files changed, 63 insertions, 0 deletions
diff --git a/Examples/test-suite/template_specialization_enum.i b/Examples/test-suite/template_specialization_enum.i
new file mode 100644
index 0000000..5fc51fb
--- /dev/null
+++ b/Examples/test-suite/template_specialization_enum.i
@@ -0,0 +1,63 @@
+%module template_specialization_enum
+
+%warnfilter(SWIGWARN_RUBY_WRONG_NAME) Hello; /* Ruby, wrong class name */
+%warnfilter(SWIGWARN_RUBY_WRONG_NAME) Hi; /* Ruby, wrong class name */
+
+
+%inline %{
+
+ enum Hello
+ {
+ hi, hello
+ };
+
+
+ template <Hello, class A>
+ struct C
+ {
+ };
+
+
+ template <Hello, class BB>
+ struct Base
+ {
+ };
+
+
+ template <class A>
+ struct C<hello , A> : Base<hello, A>
+ {
+ int fhello()
+ {
+ return hello;
+ }
+
+ protected:
+ C()
+ {
+ }
+ };
+
+
+ template <class A>
+ struct C<hi , A> : Base<hi, A>
+ {
+ int fhi()
+ {
+ return hi;
+ }
+
+ protected:
+ C()
+ {
+ }
+ };
+
+
+%}
+
+%template(Base_dd) Base<hi, int>;
+%template(Base_ii) Base<hello, int>;
+
+%template(C_i) C<hi, int>;
+%template(C_d) C<hello, int>;