%module typemap_template_typedef //%module("templatereduce") typemap_template_typedef %typemap(in) int TMAP55 %{ $1 = 55; /* int TMAP55 typemap */ %} %typemap(in) int TMAP66 %{ $1 = 66; /* int TMAP66 typemap */ %} %typemap(in) int TMAP77 %{ $1 = 77; /* int TMAP77 typemap */ %} %typemap(in) int TMAP88 %{ $1 = 88; /* int TMAP88 typemap */ %} %apply int TMAP77 { XXX<int>::Long cc } %inline %{ typedef int MyInteger; template<typename T> struct XXX { #ifdef SWIG // In swig-3.0.12 'Long aa' was actually stored as 'long aa' in typemap table instead of 'XXX<int>::Long aa' %apply int TMAP55 { Long aa } %apply int TMAP66 { XXX<int>::Long bb } %apply int TMAP88 { XXX<MyInteger>::Long dd } #endif typedef long Long; long aa1(long aa) { return aa; } long aa2(Long aa) { return aa; } long bb1(long bb) { return bb; } long bb2(Long bb) { return bb; } long cc1(long cc) { return cc; } long cc2(Long cc) { return cc; } long dd1(long dd) { return dd; } long dd2(Long dd) { return dd; } #ifdef SWIG %clear Long aa; %clear XXX<int>::Long bb; %clear XXX<MyInteger>::Long dd; #endif long aa3(Long aa) { return aa; } long bb3(Long bb) { return bb; } long cc3(Long cc) { return cc; } long dd3(Long dd) { return dd; } }; %} %template(XXXInt) XXX<MyInteger>; %clear XXX<int>::Long cc; %inline %{ long aa1(XXX<int>::Long aa) { return aa; } long aa2(long aa) { return aa; } long bb1(XXX<int>::Long bb) { return bb; } long bb2(long bb) { return bb; } long cc1(XXX<int>::Long cc) { return cc; } long cc2(long cc) { return cc; } long dd1(XXX<MyInteger>::Long dd) { return dd; } long dd2(long dd) { return dd; } %} %inline %{ typedef MyInteger MY_INTEGER; template<typename T1, typename T2 = MY_INTEGER> struct YYY { void meff(T1 t1, T2 t2) {} }; %} %template(YYYIntInt) YYY<MY_INTEGER>; %inline %{ void whyohwhy(YYY<MY_INTEGER> yy) {} %}
Generated by dwww version 1.15 on Tue Jul 2 00:26:14 CEST 2024.