%module template_base_template %warnfilter(SWIGWARN_RUBY_WRONG_NAME) traits; /* Ruby, wrong class name */ %warnfilter(SWIGWARN_PARSE_EXPLICIT_TEMPLATE); %inline %{ template struct traits { typedef ArgType arg_type; typedef ResType res_type; }; template struct Funktion { }; // Egad! template struct Klass : Funktion::arg_type, typename traits::res_type> { }; %} %{ template struct Funktion ; template struct Klass ; %} %template(traits_dd) traits ; %template(Funktion_dd) Funktion ; %template(Klass_dd) Klass ;