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. _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost