A better way to deal with overloading?

Patrick Schluter via Digitalmars-d digitalmars-d at puremagic.com
Fri Jan 27 11:05:14 PST 2017


On Friday, 27 January 2017 at 12:59:54 UTC, Kagamin wrote:
> On Friday, 27 January 2017 at 11:16:09 UTC, Patrick Schluter 
> wrote:
>> It's funny (or sad) that C has compound types since C99 and 
>> that they are good.
>> Your  foo(|a,b,|c1,c2,3||,|e|,|f,g,c|) writes as
>>
>> foo((T1){a,b,{c1,c2,c3}}, (T2){e}, (T3){f,g,c});
>>
>> of course, the lack of object orientation and other things 
>> makes it easier in C.
>
> It's struct literals, a gcc extension, not in language.

No, they're named compound* literals and they are in the language 
since C99.

https://gcc.gnu.org/onlinedocs/gcc-4.2.2/gcc/Compound-Literals.html

* They can be used to initialise also unions and arrays. (int 
[10]){0,2,[8]=2} is absolutely legal p.ex.


More information about the Digitalmars-d mailing list