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.
I don't think 1447 or 1702 affected the definition of assignment compatibility in a way whichHowever, 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 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