With C++ objects, you have to be very careful with assuming that a particular method will only cause reads from memory. Even const objects/methods can write to mutable members. You have to ensure that the entire "call graph" never writes to any shared memory locations (without synchronization).
For STL objects, one should follow the implementers documentation as to what's thread-safe.
gg
