Идея, что вызов find(...)->second
является потокобезопасным, очень зависит от вашего взгляда на безопасность потока. Если вы просто имеете в виду, что он не рухнет, тогда, пока никто не мутирует в словаре в то время, когда вы его читаете, я полагаю, вы в порядке.
Тем не менее, независимо от того, каковы ваши минимальные требования безопасности потоков, вызов метода operator[]
по своей природе не поточно-безопасен, поскольку может изменять коллекцию.
Если у метода нет перегрузки const
, это означает, что он может изменять объект, поэтому, если в документации не указано, что методы являются поточно-ориентированными, метод вряд ли будет.
С другой стороны, метод const
также может быть не поточно-ориентированным, потому что ваш объект может зависеть от не const
глобального состояния или иметь поля mutable
, так что вы захотите быть очень, очень будьте осторожны, если вы используете несинхронизированные классы, как если бы они были.