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:
parent
ff2e0cc85e
commit
2d686c0a84
4 changed files with 92 additions and 27 deletions
|
|
@ -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 ($$) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue