$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Noel Yap (Noel.Yap_at_[hidden])
Date: 2003-04-24 10:30:29
"Justin M. Lewis" wrote:
> And, it's not either pass in a whole object or pass in a pointer, you're
> forgetting references. This new class takes in a reference, and stores
> that. It doesn't do anything with pointers.
I didn't really forget references. IMHO, references are pointers that
are implicitly dereferenced. At the machine level, they are typically
treated the same (eg address is passed by value).
> And, again, returning an object isn't always desirable, you could be copying
> large objects for no reason. You may not call a copy constructor, but an =
> operator is being used.
My reply to this was to use smart pointers. But as Terje Slettebø
pointed out (but I got distracted by work before sending out my reply),
smart pointers don't resolve the problem that the object may still
change from underneath.
I still think there's no need for the proposed wrapper class since:
void f( T& value_may_change_, T const& value_may_not_change_ );
is still an acceptible alternative. IOW, if users stick to using T&
only to indicate values that may change, and T const& to indicate values
that may not change, the wrapper class has no added value (forgive the
unintended pun).
Noel
-- NOTICE: If received in error, please destroy and notify sender. Sender does not waive confidentiality or privilege, and use is prohibited.