From: Thorsten Ottosen (nesotto_at_[hidden])
Date: 2005-04-27 14:09:14
"David Abrahams" <dave_at_[hidden]> wrote in message
| "Thorsten Ottosen" <nesotto_at_[hidden]> writes:
| > | Controversialness is in the eye of the beholder, and regardless,
| > | Peter's right: by convention, the burden of proof lies with the
| > | claimant.
| > I disagree.
| Then I will accept the burden of proof for my claim:
I don't see how that changes anything.
| > Pick up you're favourite book on OO and on STL and see if the
| > programming techniques look alike.
| That's a very parsimonious explanation. It would be nice if you'd try
| to make it a bit clearer in the context of the question of duplicating
| objects, and show how it justifies a choice to prohibit ptr_containers
| from acting like proper values.
the first reason must be its damn expensive without move-semantics.
the second reason is that value-based and OO programming are different and are
kept seperate; there are different idioms, different parts of the langauge is
copying is not that common an operation in OO programming; it is in
value-based programming etc etc.
there has to be one default (with good and bad sides); I've chosen the default
that I feel, based on experience, fits the goal of the
library best; that decision was to make sure the programmer only made copies
when he really wanted to.
you're analogy with vector<string> don't quite fit IMO. assigning
vector<string> might be quite efficient with very few
heap-allocations taking place; assigning ptr_vector<Foo> would cost the same
as copy-construction + deallocation.
| > | > stuff like "value-based programming is not different from
| > | > OO-programming"
| > |
| > | Nobody made that statement.
| > Peter asked the question.
| That's very different from making the claim.
but it still feel a silly question to ask me to answer.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk