Rvalue references - The resolution
Andrej Mitrovic
andrej.mitrovich at gmail.com
Sat May 4 16:03:17 PDT 2013
On 5/4/13, Walter Bright <newshound2 at digitalmars.com> wrote:
> Andrei & I argued that we needed to make it work with just ref annotations.
So to recap, 2.063 turns slices into r-values which will break code
that used ref, e.g.:
-----
void parse(ref int[] arr) { }
void main()
{
int[] arr = [1, 2];
parse(arr[]); // ok in 2.062, error in 2.063
}
-----
Then the user might introduce a non-ref overload:
-----
void parse(ref int[] arr) { }
void parse(int[] arr) { } // picks this one
-----
And later down the road, maybe even in 2.064, ref will take r-values
making the new code error because of ambiguity between the two
functions.
Has code breakage ever been taken into account during this dconf conversation?
I doubt a short verbal conversation can solve design problems or take
into account all edge-cases, this is why we have the web where we can
document all code samples and the flaws of some design spec.
This "resolution" should be a DIP that goes through a review just like
all the other DIPs, otherwise DIPs are pointless if they get overruled
by some behind-the-scenes conversation.
More information about the Digitalmars-d
mailing list