$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: John Potter (jpotter_at_[hidden])
Date: 2000-01-02 18:22:01
Please excuse me for butting in.
On Sun, 2 Jan 2000, Dave Abrahams wrote:
> > What do you think about a chaining of member function calls in general? $
> > never heard anything about this subject from any person who can made me $
> > my mind, so I'll glad to hear something about it from members of this gr$
>
> It's unfamiliar to me at least. There is a reason that it is often
> recommended that operator+= should return a const reference instead of a
> full reference: for compatibility with the built-in types. IOW, you can't
> write: int x = 0; (x += 3)++
You can if you add a semicolon ;) The built-in types produce lvalues.
This is undefined behavior of the form that I have never seen any
compiler do anything other than expected. With my limited experience,
I see no reason to do anything else. Chaining is also quite common.
You're just used to a different form.
int x = 0;
(x += 3)++;
cout.operator<<(x).operator<<(endl);
The assignable requirements for container elements require a T&,
but I know of no place where a T const& would not work. No desire
to open an old debate. If it is policy, that is sufficient.
John