jonathan.bromley@doulos.com wrote:
Yes, I meant just that the backward incompatibility in casting can be avoided by making an exceptionincompatibility can be avoided by excluding [queues] from your proposalBut they were not part of the proposal, which addresses only the assignment compatibility of various array types.
However, one could widen the proposal to forbid bit-stream
casting to a variable-sized target. Its existing uses
can always be replaced (with more flexibility) by streaming
concatenation {>>{...}}.
As I see it there are three possible outcomes here:
1) Previous decisions (Manti 1447, 1702) relaxing array
assignment compatibility could be revoked. I really
don't like this; those changes met some important user
needs, and also fixed a number of internal contradictions
in the 2005 LRM, so undoing them would be not only
undesirable but also far from trivial.
I don't think 1447 or 1702 affected the definition of assignment
compatibility in a way whichI support this option. Unsafe casting here isn't so useful, and the coding styles I've seen2) Continue with approximately the current suggestion for 2380, and accept that the semantics of bit-stream casting to queues and dynamic arrays will be incompatible between 2005 and 2009.
I think (3) is just setting up the extension to (2). My guess is that it would get us to3) Make it illegal to do a bit-stream cast to a variable-length array, and expect users to change existing code to use streaming concatenation or some other substitute.
You didn't describe the most conservative option (4), which was what I tried to suggest:I am willing to act as scribe for either (2) or (3), but I'm not qualified to decide which option is preferred. There's also option (0), do nothing and leave the present internal contradictions about array assignment compatibility, but I sincerely hope that would be vetoed by some balloting entity!
This archive was generated by hypermail 2.1.8 : Fri May 22 2009 - 08:52:42 PDT