diff options
Diffstat (limited to 'Examples/test-suite/template_specialization_enum.i')
| -rw-r--r-- | Examples/test-suite/template_specialization_enum.i | 63 |
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>; |
