shouting versus dotting
KennyTM~
kennytm at gmail.com
Sun Oct 5 06:53:28 PDT 2008
Christopher Wright wrote:
> Andrei Alexandrescu wrote:
>> Christopher Wright wrote:
>>> Andrei Alexandrescu wrote:
>>>> 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.
>>>
>>> Not only that, but typing it is annoying. First you need to put the
>>> right pinky on the shift key, which is a long reach; then you need to
>>> put the left pinky on the 1 key, which is a long reach. Then you need
>>> to move your left pinky all the way back to the left shift key, which
>>> is a short reach, and move your right ring finger up to the 9 key.
>>>
>>> It's a lot of reaching and back and forth.
>>>
>>> But I don't favor '.' since it's already used.
>>
>> I don't favor "." any more than the next guy, but I am glad there is
>> awareness of how unfit a choice "!" is. If you have any ideas, please
>> post them! Ah! I! Exclaimed! Again!
>>
>> Andrei!
>
> I agree with Mr. Martin II: colon might be an unambiguous option, and
> for qwerty keyboards, you don't have to switch shift keys. (I use
> dvorak, so it'd be slightly more awkward, but still a fair bit more
> easier than a bang.)
>
> Also, colon's taller than dot, so it's easier to see.
How to distinguish a label from a template then? Should I print X or Y
in the following code?
import std.stdio;
class X {
static void print () {
writeln("Y");
}
}
template T (x) {
void print () {
writeln("X");
}
}
void main () {
T:(X).print();
}
More information about the Digitalmars-d
mailing list