support of typemaps + template + template def args

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@6808 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Marcelo Matus 2004-12-01 01:01:03 +00:00
commit 2d686c0a84
4 changed files with 92 additions and 27 deletions

View file

@ -3301,25 +3301,8 @@ cpp_template_decl : TEMPLATE LESSTHAN template_parms GREATERTHAN { template_para
Delete(targs);
} else {
/* Need to resolve exact specialization name */
/* This needs to be rewritten */
ParmList *tparms;
String *fname;
Parm *p;
fname = SwigType_templateprefix(tname);
tparms = SwigType_function_parms(tname);
/* add default args from generic template */
Swig_cparse_template_defargs(tparms, Getattr(tempn,"templateparms"),0);
Append(fname,"<(");
p = tparms;
while (p){
SwigType *type = Getattr(p,"type");
SwigType *ttr = Swig_symbol_typedef_reduce(type ? type : Getattr(p,"value") ,0);
ttr = Swig_symbol_type_qualify(ttr,0);
Append(fname,ttr);
p = nextSibling(p);
if (p) Putc(',',fname);
}
Append(fname,")>");
String *fname = Swig_cparse_template_deftype(tname,0);
Swig_symbol_cadd(fname,$$);
}
} else if ($$) {