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