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 36 37 38
|
%module template_namespace_forward_declaration
%inline %{
namespace Space1 {
namespace Space2 {
template<typename T> struct XXX;
template<typename T> struct YYY;
}
template<typename T> struct Space2::YYY {
T yyy(T h) {
return h;
}
};
template<typename T> struct Space1::Space2::XXX {
T xxx(T h) {
return h;
}
};
void testXXX1(Space1::Space2::XXX<int> xx) {
}
void testXXX2(Space2::XXX<int> xx) {
}
void testXXX3(::Space1::Space2::XXX<int> xx) {
}
void testYYY1(Space1::Space2::YYY<int> yy) {
}
void testYYY2(Space2::YYY<int> yy) {
}
void testYYY3(::Space1::Space2::YYY<int> yy) {
}
}
%}
%template(XXXInt) Space1::Space2::XXX<int>;
%template(YYYInt) Space1::Space2::YYY<int>;
|