At Monday 2002/11/18 14:46, you wrote:
At 01:32 PM 11/18/2002, Rob Stewart wrote:
>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.
And I really dislike by-reference parameters. I like functions
to be free of side effects, and especially of non-obvious side
effects.
a non-const reference parameter isn't exactly non-obvious
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Victor A. Wagner Jr. http://rudbek.com
The five most dangerous words in the English language:
"There oughta be a law"
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost