$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:33:53
Terje Slettebø wrote:
> The part about RVO was really concerned with the out() scenario, not
> in_out(). I'm not sure if passing a smart pointer buys you very much. In
> this case, the smart pointer is const but the pointee is not, so the "const"
> in the signature is really just masking what is going on.
You're right. I see your point.
At first I thought that if there were an easy way to convert smart_ptr<
T > to smart_ptr< T const > there'd be no problem. But then I realized
this would bring about the expensive copy again.
IMHO, the solution to this dilemna is to use the de facto standard way
of using references like you said earlier:
void f( T& value_may_change_, T const& value_may_not_change_ );
Noel
-- NOTICE: If received in error, please destroy and notify sender. Sender does not waive confidentiality or privilege, and use is prohibited.