1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
%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>;
|