--- Comment #2 from Eldar Insafutdinov <> 2009-12-26 
12:51:57 PST ---
(In reply to comment #1)
> This is a bit more tricky than it looks like.
> The question here is, how many times should foo be instanciated?
> DMD answers "just 1 time", and I agree with it, since bar and bam have same
> signature and mangling.

> But this only happens if foo!(bar) is instanciated before foo!(bam), because
> when templates are instantiates on first use. When you instanciate foo!(bam)
> first, it doesn't get rewritten and therefore fails to compile.
> I guess the only fix for this issue would be to create an implicit trampoline
> to invoke functions with default arguments, but only Walter can say for sure.

Yeah, that was pretty much what I was thinking about. The issue cuts down to a
question, should Foo be instantiated once or are the function types equal? For
binary size and efficiency purposes I agree that there should be one
instantiation. On the other hand for meta programming and code generation which
is what I am doing I would like to have them as separate types, as I don't want
to loose this information. Walter or Andrei would probably have to comment on
this issue.

Configure issuemail:
------- You are receiving this mail because: -------

Reply via email to