Thread overview | |||||||
---|---|---|---|---|---|---|---|
|
June 27, 2013 auto type for defaulted arguments? [Repost] | ||||
---|---|---|---|---|
| ||||
(This is an extended repost of a message that I have put in D.learn.) Sometimes I have code like this: struct VeryLongNamedStruct {} void foo(in VeryLongNamedStruct x = VeryLongNamedStruct(1)) {} void main() {} Or even: void bar(in TupleFoo x = TupleFoo(TupleBar(2), TupleSpam(3))) {} In those cases something I'd like to use "auto" in the function signature for the arguments that have a default value: void foo(in auto x = VeryLongNamedStruct(1)) {} Do you like? Is it safe enough? Is it useful enough? Is it too much work to implement? A bit more complex case: void spam(T)(const x = Foo!T(4)) {} Bye, bearophile |
June 27, 2013 Re: auto type for defaulted arguments? [Repost] | ||||
---|---|---|---|---|
| ||||
Posted in reply to bearophile | On Thursday, 27 June 2013 at 17:42:14 UTC, bearophile wrote:
> (This is an extended repost of a message that I have put in D.learn.)
>
> Sometimes I have code like this:
>
> struct VeryLongNamedStruct {}
> void foo(in VeryLongNamedStruct x = VeryLongNamedStruct(1)) {}
> void main() {}
>
> Or even:
>
> void bar(in TupleFoo x = TupleFoo(TupleBar(2), TupleSpam(3))) {}
>
> In those cases something I'd like to use "auto" in the function signature for the arguments that have a default value:
>
> void foo(in auto x = VeryLongNamedStruct(1)) {}
>
> Do you like? Is it safe enough? Is it useful enough? Is it too much work to implement?
>
> A bit more complex case:
>
> void spam(T)(const x = Foo!T(4)) {}
>
> Bye,
> bearophile
Alias supposed to be used for such cases, but auto can be used in paramenters too.
|
June 27, 2013 Re: auto type for defaulted arguments? [Repost] | ||||
---|---|---|---|---|
| ||||
Posted in reply to Maxim Fomin | On Thu, 27 Jun 2013 19:58:58 +0200 "Maxim Fomin" <maxim@maxim-fomin.ru> wrote: > On Thursday, 27 June 2013 at 17:42:14 UTC, bearophile wrote: > > (This is an extended repost of a message that I have put in D.learn.) > > > > Sometimes I have code like this: > > > > struct VeryLongNamedStruct {} > > void foo(in VeryLongNamedStruct x = VeryLongNamedStruct(1)) {} > > void main() {} > > > > Or even: > > > > void bar(in TupleFoo x = TupleFoo(TupleBar(2), TupleSpam(3))) {} > > > > In those cases something I'd like to use "auto" in the function signature for the arguments that have a default value: > > > > void foo(in auto x = VeryLongNamedStruct(1)) {} > > > > Do you like? Is it safe enough? Is it useful enough? Is it too much work to implement? I've noticed a need for that, too. > but auto can be used in paramenters too. It can? Cool! |
June 28, 2013 Re: auto type for defaulted arguments? [Repost] | ||||
---|---|---|---|---|
| ||||
Posted in reply to Nick Sabalausky | On Thursday, 27 June 2013 at 20:24:46 UTC, Nick Sabalausky wrote:
>
>> but auto can be used in paramenters too.
>
> It can? Cool!
Actually I meant "dmd does not support the feature now, but I see no reason for not supporting it".
|
June 29, 2013 Re: auto type for defaulted arguments? [Repost] | ||||
---|---|---|---|---|
| ||||
Posted in reply to bearophile | In the meantime I have opened an enhancement request: http://d.puremagic.com/issues/show_bug.cgi?id=10491 Henning Pohl has written a patch: https://github.com/D-Programming-Language/dmd/pull/2270 And Kenji has written some comments in Bugzilla, explaining why he doesn't like this ER. I usually trust Kenji judgement. So let's close down this idea? Bye, bearophile |
Copyright © 1999-2021 by the D Language Foundation