DIP19: Remove comma operator from D and provision better syntactic support for tuples
foobar
foo at bar.com
Mon Sep 24 07:50:47 PDT 2012
On Monday, 24 September 2012 at 10:05:18 UTC, Nick Sabalausky
wrote:
> On Mon, 24 Sep 2012 10:56:40 +0200
> Jacob Carlborg <doob at me.com> wrote:
>
>> On 2012-09-24 07:01, Nick Sabalausky wrote:
>>
>> > I think one of us is missing something, and I'm not entirely
>> > sure
>> > who.
>> >
>> > As I explained (perhaps poorly), the zero- and one-element
>> > tuples
>> > *would still be* tuples. They would just be implicitly
>> > convertible
>> > to non-tuple form *if* needed, and vice versa. Do you see a
>> > reason
>> > why that would *necessarily* not be the case?
>>
>> Would that mean you could start doing things like:
>>
>> int a = 3;
>> int b = a[0];
>>
>> That feels very weird.
>>
>
> No, because there's nothing typed (int) involved there. But you
> could do
> this:
>
> int a = 3;
> (int) b = a;
> a = b;
>
> Or this:
>
> void foo((int) a)
> {
> int b1 = a[0];
> int b2 = a;
> }
> int c = 3;
> foo(c);
What's the point than?
here's equivalent code without this "feature":
int a = 3;
(int) b = (a); // explicitly make 1-tuple
(a) = b; // unpacking syntax
void foo((int) a) {
int b1 = a[0];
(int b2) = a; // one possible syntax
}
int c = 3;
foo ((c));
More information about the Digitalmars-d
mailing list