On Friday, 31 May 2013 at 03:07:22 UTC, nazriel wrote:
That actually looks good...
I liked idea of:

    auto (x, y) = foo();
    (int x1, string y1) = foo();

    (int, string) foo() {

         (int tmp, string tmp2) = (3, "dsa");

         return (42, "dsa");
    }

but it was shoot down because of various issues.


This have an issue with one element tuple. Not unsolvable, but must be considered.

Then proposal with {} risen:

    auto {x, y} = foo();
    {int x1, string y1} = foo();

    {int, string} foo() {

        {int tmp, string tmp2} = {3, "dsa"};

        return {42, "dsa"};
    }


This is a reciepe for disaster. {} are already used way too much, sometime on way that are hard to deambiguate.


Now this:

    auto #(x, y) = foo();
    #(int x1, string y1) = foo();

    #(int, string) foo() {

        #(int tmp, string tmp2) = #(3, "dsa");

        return #(42, "dsa");
    }


This have the advantage of not having issue with one element tuples.

My 2 cents :))

bearophile what do you think?

I also do agree that the 3rd one is probably the best.

Reply via email to