%module xxx
%template(abc) SSS::AAA<int>;
namespace UUU {
struct JJJ;
}
%template(xxx) UUU::JJJ<int>;
%template(TTT_int) VVV::TTT<int>; // needs to be after template is parsed
namespace VVV {
template<typename T> struct TTT {};