[C++-sig] Re: Boost.Python << & >> bug

Niall Douglas s_sourceforge at nedprod.com
Wed Aug 6 05:03:21 CEST 2003


On 4 Aug 2003 at 23:21, David Abrahams wrote:

> > Like it or not, most C++ programmers have never seen the spec and so
> > wouldn't understand what you've just said. My copy is an extremely
> > antiquated 1996 edition which doesn't have function try blocks etc.
> > and while I've read through it several times, I'm still unclear!
> 
> Err, lvalue and rvalue are much older concepts than 1996.  They come
> from 'C'.

I know - however the C++ spec defines 99% of the C spec too. What I 
find interesting is that nowhere in my copy of the spec are lvalue or 
rvalue defined. I had assumed lvalues are to the left of the equals 
and rvalues are to the right such that lvalue=rvalue, but 
(lvalue=rvalue) is a rvalue too.

I taught myself C++ from the terse online docs in MSVC4. Some feel 
that it is terrible there are programmers like me practising out 
there, but I would argue that I've never been able to afford anything 
better and few university courses here teach C++.

> > If I /do/ read you right, wouldn't making self a lvalue preclude
> > auto- casting up to an inherited type? 
> 
> No, the opposite.
> 
> > If so in my previous bug report, subclasses of FXId which use its
> > FXStream << & >> overloads when passed as-is would surely no longer
> > work?
> 
> The opposite.

In which case it looks like my definitions of the two are inverted. 
Hence, your proposal looks like a good idea.

I know I've probably sounded really ignorant in these past two emails 
or so, but if you don't ask questions then you don't realise you're 
wrong. My apologies if it's annoyed anyone.

Cheers,
Niall





More information about the Cplusplus-sig mailing list