Re: Dynamically choosing what to "new"
On Jun 11, 3:08 am, Gianni Mariani <gi3nos...@mariani.ws> wrote:
JohnQ wrote:
"James Kanze" <james.ka...@gmail.com> wrote in message
news:1181475698.678115.168530@q75g2000hsh.googlegroups.com...
On Jun 10, 7:17 am, Pat <n...@none.none> wrote:
James Kanze <james.ka...@gmail.com> wrote
innews:1181424432.858079.283710@p77g2000hsh.googlegroups.com:
I try to always pass pointers or references,
unless the parameter is small (e.g. int).
"Which is just stupid."
My rule of thumb is "pass a reference when you can, pass a pointer when=
you
have to" as arguments to functions. Copy-on-write may be a technique for
severely constrained platforms rather than a general technique to be us=
ed
everywhere (an exercise in futility?).
What exact point are you trying to make with COW ? It seems like it has
very common usage..
It's extremely difficult to get both right and with acceptable
performance in a multithreaded environment. For
std::basic_string, I only know of two COW implementations: Sun
CC is unacceptably slow, and g++ has bugs. Admittedly, a large
part of the problem here is that std::basic_string has a
particularly pernicious interface. But I find that while I made
extensive use of COW when I started C++, some 15 years ago, I
rarely if ever use it today. Improvements in machine speed, and
above all allocation algorithms, coupled with the widespread use
of multithreading, have made it largely obslete today.
--
James Kanze (GABI Software) email:james.kanze@gmail.com
Conseils en informatique orient=E9e objet/
Beratung in objektorientierter Datenverarbeitung
9 place S=E9mard, 78210 St.-Cyr-l'=C9cole, France, +33 (0)1 30 23 00 34