[Issue 1528] [tdpl] overloading template and non-template functions

d-bugmail at puremagic.com d-bugmail at puremagic.com
Fri Mar 1 03:55:46 PST 2013


http://d.puremagic.com/issues/show_bug.cgi?id=1528



--- Comment #21 from Kenji Hara <k.hara.pg at gmail.com> 2013-03-01 03:55:37 PST ---
(In reply to comment #20)
> (In reply to comment #19)
> > (In reply to comment #17)
> > ...
> > 
> > In IFTI, the match level for template arguments and for function arguments are
> > distinguished. The former is prior than the latter, so there is 3 * 3 + 1 match
> > level in IFTI.
> > 
> >   For tiargs: exact or const or convert  (3)
> >   For funargs: exact or const or convert  (* 3)
> >   noatch (+ 1)
> > ...
> 
> It can be seen that way. They are ordered from worst to best like this:

More precisely:

MATCHnomatch
tiargs:MATCHconvert / funarg:MATCHconvert
tiargs:MATCHconvert / funarg:MATCHconst
tiargs:MATCHconvert / funarg:MATCHexact
tiargs:MATCHconst   / funarg:MATCHconvert
tiargs:MATCHconst   / funarg:MATCHconst
tiargs:MATCHconst   / funarg:MATCHexact
tiargs:MATCHexact   / funarg:MATCHconvert
tiargs:MATCHexact   / funarg:MATCHconst
tiargs:MATCHexact   / funarg:MATCHexact

Additionally, when comparing normal function and template function matching,
tiargs MATCH level is treated as equal to funargs level.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list