Proposal: real struct literals
downs
default_357-line at yahoo.de
Wed Jun 25 10:33:17 PDT 2008
Bill Baxter wrote:
> Jarrett Billingsley wrote:
>> "Bill Baxter" <dnewsgroup at billbaxter.com> wrote in message
>> news:g3s45g$1ork$1 at digitalmars.com...
>>
>>>> Tricky, but I'm sure that some (reasonable) constraints could be put
>>>> on this type of function to make it easier to disambiguate.
>>> One thing that's lacking is that you wouldn't be able to tell which
>>> named parameters were set vs which not set.
>>
>> Ooh, yeah.
>>
>>>> Failing using structs as named parameters, there's certainly nothing
>>>> stopping the compiler from allowing named parameters with functions
>>>> as they are now. They have the names right there :P
>>> Except 36 years of experience with C and C++ that makes people expect
>>> that the names of formal parameters don't matter. I think the only
>>> way to make such a big change palatable at this point is to require
>>> some special syntax to use it.
>>
>> Funny, I don't feel the same way, probably because I've used D more
>> than I have C or C++ ;)
>
> Ok, but it would have impact on a backlog of 10 years' worth of D code
> too. I agree it would be cool to have, but I also agree with Walter
> that switching D's default scheme to named parameters at this point
> would incur too much cost for too little benefit.
>
> But when whoever sits down to start writing D++ or E, I hope he gives
> named parameters some serious thought. That and putting the type after
> the variable instead of before.
>
> --bb
For what it's worth, if you really want you can fake named parameters with templates and typedefs.
typedef int _Foo;
_Foo Foo(int i) { return cast(_Foo) i; }
void test(T...)(T t) {
// test for presence of a _Foo in t
}
void main() { test(Foo=5); }
More information about the Digitalmars-d
mailing list