shouting versus dotting

Ary Borenszweig ary at esperanto.org.ar
Sat Oct 4 21:25:53 PDT 2008


Andrei Alexandrescu escribió:
> The problem I see with "!" as a template instantiation is not technical. 
> I write a fair amount of templated code and over years the "!" did not 
> grow on me at all. I was time and again consoled by Walter than one day 
> that will happen, but it never did. I also realized that Walter didn't 
> see a problem with it because he writes only little template code.
> 
> I didn't have much beef with other oddities unique to D. For example, I 
> found no problem accommodating binary "~" and I was wondering what makes 
> "!" different. I was just looking at a page full of templates and it 
> looked like crap.
> 
> One morning I woke up with the sudden realization of what the problem 
> was: the shouting.
> 
> In C, "!" is used as a unary operator. That may seem odd at first, but 
> it nevers follows a word so it's tenuous to associate it with the 
> natural language "!". In D, binary "!" _always_ follows a word, a name, 
> something coming from natural language. So the conotation with 
> exclamation jumps at you.

I was thinking about in which other way templates could be specified... 
Most of the other symbols already have a meaning as binary operator. And 
it also would be nice to have an opening and closing symbols, like <> in 
Java, C++, etc.

Can't {} be used for that? For example:

List{int} someList;

void foo{T}(T val) {
}

It seems more quiet. :-)

The only thing is, I don't know if this can lead to ambiguos parsing. I 
thought about it a little, and it seems it's ok. Another thing is that 
maybe { and ( look alike, so it can lead to confusion...

Oh, mmm... does it conflict with struct initializers?



More information about the Digitalmars-d mailing list