From: "Andrei Alexandrescu" <[EMAIL PROTECTED]>
> 
> I recently reached the conclusion that taking a parameter by const reference
> just to make a copy of it inside the function is a "lie". The signature
> says: "I don't need a value! A reference to a const is all I need!" and the
> code says: "The first line of this function makes a copy!" There will be a
> section in my upcoming article entitled "The Lying const". Taking const& T
> as arguments in /any/ function when you actually *do* need a copy chokes the
> compiler (and Zuto) and practically forbids them to make important
> optimizations.

If there are lost optimizations, I might be persuaded to change
my modus operandi, but I really dislike by value parameters.  The
reason is that I like to know the value given by the caller
throughout the function.  When I want to start with the caller's
value and then modify it, I make a copy.

When I read code that modifies the arguments, I find the code
confusing as I can never know the value in that variable unless I
inspect the entire function.  While we all know functions should
be kept relatively short, they aren't always, and long functions
exacerbate the problem.  IOW, by value arguments reduce code
clarity.


-- 
Rob Stewart                           [EMAIL PROTECTED]
Software Engineer                     http://www.sig.com
Susquehanna International Group, LLP  using std::disclaimer;
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to