Re: std::string bad design????
Le Chaud Lapin wrote:
James Kanze wrote:
The problem is that you don't know what the classes do. You use
an std::map, for example; how do you know that it doesn't use
static memory (e.g. in its allocators) in the implementation.
Unless std::map is thread-safe, you cannot use it in a
multithreaded application.
There is a fundamental difference in expectations here. I do not
expect any state, not even a simple int, to be thread-safe unless I
make it thread-safe;
int x; // not thread-safe
You almost certainly do; I can state that even though you don't explain
your use of "thread safe", an ambiguous term.
For example, you expect that you can operate on x from thread 1 while
thread 2 is operating on another int. (1)
It's also reasonable to expect that two threads can read x
simultaneously. (2)
"Not thread safe" essentially means that you can't use an int in a
multi-threaded program, and we know this to not be true.
Your container (from your description) violates (2) but probably not
(1), even though you describe its level of thread safety as "none". STL
containers obey both (1) and (2) (sometimes referred to as "basic"
thread safety).
--
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]