| %module xx |
| |
| struct Low : High { |
| }; |
| |
| struct Small; |
| |
| struct Big : Small { |
| }; |
| |
| %inline %{ |
| namespace A { |
| class XYZ {}; |
| template<typename T> struct ABC : |
| public B::ABC<T> { |
| }; |
| } |
| namespace B { |
| template<typename T> struct ABC { |
| void aaa(T t) {} |
| }; |
| } |
| %} |
| %template(ABCXYZ) A::ABC<A::XYZ>; |
| |
| %template() B::ABC<int>; |
| %template(ABCint) A::ABC<int>; |
| |
| template<typename T> |
| struct Another : WrongOrderBase<int> { |
| }; |
| %template(AnotherBool) Another<bool>; |
| |
| template<typename T> class WrongOrderBase {}; |
| %template(ForAnotherInt) WrongOrderBase<int>; |