Tuple DIP
Timon Gehr
timon.gehr at gmx.ch
Mon Jun 3 18:40:48 UTC 2019
On 03.06.19 20:34, Exil wrote:
> On Monday, 3 June 2019 at 17:43:36 UTC, Timon Gehr wrote:
>> On 20.09.18 19:08, Guillaume Boucher wrote:
>>> On Saturday, 13 January 2018 at 18:28:55 UTC, Timon Gehr wrote:
>>>> However, this proposal is independent of all the other ones, so in
>>>> the end it is up to Walter and Andrei.
>>>
>>> Have there been any discussions regarding the semantics of _?
>>>
>>> struct G { ~this() { writeln("destruct"); } }
>>> void main() {
>>> auto _ = G();
>>> writeln("here");
>>> }
>>>
>>> The DIP currently says this should print first "here" and then
>>> "destruct".
>>>
>>> However, as you cannot access the variable later, you most often want
>>> to discard the data right away, i.e. print first "destruct" and then
>>> "here".
>>>
>>> I personally find the second interpretation more useful.
>>>
>>
>> This has not been discussed, but I agree it should be addressed
>> somehow. The main issue is that right now "_" is a valid identifier.
>
> Not sure what the use case is for this,
auto (x,_,y) = f();
foreach(_;0..n) { ... }
...
> but if you don't need the value
> of the variable, assuming from a function or otherwise. You can just not
> assign it to anything.
> ...
Nope.
> struct G { ~this() { writeln("destruct"); } }
> void main() {
> G(); // prints "destruct" before "here"
> writeln("here");
> }
>
> definitely don't like the idea of changing how scope works. I'd rather
> not the compiler choose to decide whether it does something one way or
> another like that.
>
You mean like when you don't assign the result to anything?
More information about the Digitalmars-d
mailing list