On Friday, 31 May 2013 at 14:42:32 UTC, Steven Schveigho
I can't at the moment think of a reason why anyone would ever use the full syntax, but I would expect it to be accessible, and for the compiler to treat foo as a template first, function call second.

-Steve

I do believe that the idea is that once a template is "eponymous", then all calls are supposed to be aggressively expanded to the internal name, and not just "can be omitted". Once you've written the template, it is immediately "assumed" to be the eponymous call. At that point, trying to make a fully qualified call fails, because the template was already "expanded" (for lack of a better word).

Leaving the possibility to choose both syntax would allow ambiguity, which is never good: Your template is either eponymous, or it isn't. It's not "sometimes eponymous".

From what you have shown, I'd just say 2.062 introduced a bug, which was fixed by 2.063.

EDIT: Allow I think that there is a bug that a template becomes eponymous when it contains a single public function that is eponymous, regardless of other functions. IMO, that is a good thing, but the spec state that there should be ONLY members with the same name.

As for the "Exactly one": That's bullocks, unless you mean that overloads define a single function. There are tons of places where we use a template with overloaded eponymous resolution. I think the spec is wrong on that one.

Reply via email to