On Saturday, 6 February 2016 at 08:01:20 UTC, tsbockman wrote:
On Saturday, 6 February 2016 at 06:34:05 UTC, Marco Leise wrote:
[...]

I should also point out that, since there is no way to actually find out whether anyone is using the `ref`-ness of the return type in the wild, the approach that you and Saurabh Das are taking really ought to include changing the symbol name and deprecating the old one.

Otherwise you could introduce subtle bugs into previously valid code; not every significant effect of removing `ref` will cause an error message at compile time *or* run time - some will just silently change the behaviour of the program, which is awful.

I think we should add a static assert to slice to ensure that the current implementation is not used in a case where the alignment doesn't match. This is better than failing without any warning.

We could add new (differently named) functions for slicing non-aligned tuples.

I agree that my approach of removing the ref may break existing code, so if introduced, it should be named differently.

I am not comfortable with tuple(42, true, "abc").slice(1, 3) being different in type from tuple(true, " abc").

Reply via email to