Array literals' default type

Steven Schveighoffer schveiguy at yahoo.com
Mon Oct 12 15:55:27 PDT 2009


On Mon, 12 Oct 2009 14:27:21 -0400, Jarrett Billingsley  
<jarrett.billingsley at gmail.com> wrote:

> On Mon, Oct 12, 2009 at 1:21 PM, language_fan <foo at bar.com.invalid>  
> wrote:
>> Mon, 12 Oct 2009 13:04:03 -0400, Jarrett Billingsley thusly wrote:
>>
>>> On Mon, Oct 12, 2009 at 10:47 AM, Don <nospam at nospam.com> wrote:
>>>
>>>>> Wasn't the comma operator to be supposed to be important for  
>>>>> automatic
>>>>> code generation?
>>>>
>>>> It's used frequently in in the compiler internals. EG, given
>>>>
>>>> int foo(X x = default_value) { return 0; } then foo(); becomes:   (X
>>>> tmp = default_value, foo(tmp));
>>>
>>> There doesn't need to be any *syntactic* reservation for something
>>> that's used internally by the compiler. I mean, we don't have to
>>> explicitly mark which brace blocks introduce scopes, but  
>>> ScopeStatements
>>> are alive and well inside the compiler. CommaExp could just become
>>> "SequenceExp" or something and it would have the exact same effect. I
>>> really don't think there will be a lot of moaning if comma expressions
>>> disappeared. And yes, for loop increments can be special-cased, geez..
>>
>> But it breaks the holy C compatibility. When a C veteran with 40+ years
>> of C development experience under their belt studies D by porting a 1
>> MLOC library to D 2.0, his code will fail as the precious old comma does
>> not compute sequencing, but instead will produce a nasty compile error.
>> Porting the code in a single go will not be possible anymore and reddit
>> commentators will literally crush D.
>>
>
> Fuck C.

Jarrett, I think you lost the sarcasm in his post :)

-Steve



More information about the Digitalmars-d mailing list