This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: generalized lvalues



On 19 Nov 2004, at 4.38, Nathan Sidwell wrote:



Do you need a solution that works in both C and C++?

Yes.

If you're adding language extensions, you should choose one that is the
smallest possible extension (ideally, it would be 'not-an-extension').
The cast-as-lvalue idea fails for C++, as Joe Buck has pointed out, and
it fails for C as it makes a whole swathe of ill-formed uses now well-formed,
but with non-intuitive semantics.

Yes, Joe raised a very good point, although it made me realize that I'm not really
after the whole casts-as-lvalues enchilada, but really after the ability to be
assign to a cast. I believe the compiler will currently complain about assigning
to a non-lvalue, and what I'd need is some sort of -fassign-to-cast flag (off by default,
but on for ObjC/ObjC++) that would let it go through. Of course, the compiler should only
allow the assignment if the cast does _not_ result in a temporary being created.


--Zem


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]