Безопасен ли многопользовательский поток equal_range?

Нужна ли синхронизация, если доступ к нескольким потокам

pair<iterator,iterator> equal_range (const value_type& val) const;

поскольку equal_range это операция чтения, она может не потребоваться. Прокомментируйте, пожалуйста.

1 ответ

Как вы сказали, поскольку вы только "читаете данные", вам не нужна синхронизация, вы можете ожидать, что функция будет "поточно-ориентированной", см. Этот вопрос, где принятый ответ гласит:

[17.6.5.9/3] Функция стандартной библиотеки C++ не должна прямо или косвенно изменять объекты (1.10), доступные для потоков, отличных от текущего потока, если к объектам не обращаются прямо или косвенно через неконстантные аргументы функции, включая this.

Другие вопросы по тегам