|
Boost : |
From: Synge Todo (wistaria_at_[hidden])
Date: 2002-02-06 06:40:01
Dear Alisdair,
From: "Alisdair Meredith" <alisdair.meredith_at_[hidden]>
Date: Wed, 06 Feb 2002 09:48:12 +0000
> I believe both calls to insert can fail on copy-constructors, and
> leave you with a modified container [so breaking the exception
> guarantees]
>
> Not sure how to fix this [or if it is fixable] but it should at
> least be documented.
You are right. I have indicated this breaking of exception-safty in
the document:
[from index.html]
Recommendation
Use a standard STL container (std::vector, etc) as long as
possible. The standard STL containers are (expected to be)
well-tested, exception-safe, and efficient enough for most
applications. Use a fixed-capacity container, if and only if the
efficiency or the space of the container is critical for your
application, and you are sure of the maximum number of elements.
But I agree that it's better to write it more explicitly.
> I expect [no timing tests done] that this also means swapping
> fixed_vectors should be significantly slower than std::vectors.
> Given the relative infrequency of swapping the containers, the
> tradoff is likely worthwhile, but again worth noting [after
> measurements!]
As for this point, I have written it clearly in the document. I think
this overhead is inevitable.
[again from index.html]
Complexity
All the member functions should be the same complexity as those of
the corresponding standard containers, except that the swap() member
function as well as the global swap() function has a linear
complexity (not a constant time) unlike the standard ones.
Synge Todo
wistaria_at_[hidden]
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk