Template instantiation syntax

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Fri Oct 10 15:48:03 PDT 2008


Jason House wrote:
> Walter Bright Wrote:
> 
>> We seem to have reached a dead end on finding a significantly
>> better alternative than foo!(bar).
>> 
>> All is not lost, though. Andrei is working on an emacs module that
>> will parse D code and replace foo!(bar) with foo«bar» for display
>> only when the editor is in D mode, the underlying text will still
>> be foo!(bar). (This doesn't affect D at all, only its display in
>> Emacs.)
>> 
>> Also, we're going to try using ! for single argument syntax, as in:
>> 
>> 
>> foo!bar  is same as   foo!(bar) foo!10   is same as   foo!(10)
>> 
>> etc. 0 arguments or more than 1 argument or arguments that are more
>> than one token long will still require !( ). We'll see how that
>> works. I think it looks rather nice.
> 
> Couple of comments/questions
> 
> The tool!lathe syntax doesn't look visually distinct enough for me.
> The @ syntax seems nicer on the eyes. I'm not trying to push changes.
> @() looks ugly to me, and having matching template syntax is
> desirable.

I agree. But after all the aggravation, I learned to be happy with what
I can get.

> Is it ok to chain!nested!templates?  Gramatically, it's unambiguous.

Walter gave me a black eye over it last night. I'll let him to provide
the juicy details. The short version is that for now a!b!c is disallowed
with extreme prejudice.

> Will Andrei color template parameters with ! so they're easier to
> spot? How would they look when nested? Alternating colors should work

Walter exaggerated when he said that "I'm working on" an emacs solution.
I only said "I'm pretty sure it can be done". :o)


Andrei



More information about the Digitalmars-d mailing list