Search code examples
c++thread-safetycontainersstdatomic

Is it safe to call size on a std container from another thread?


When one thread manages an std::map adding and removing things, may another thread safely call size() on the map?

Since there are no iterators involved, invalidation is not an issue.

In this case, I suppose the map is always alive. No object-destruction-at-a-bad-moment issues.


Solution

  • No. Size may involve traversal as it is not guaranteed to be O(1).