Вы не можете вызывать любые функции, которые изменяют эту строку, std :: или иным образом.В статье говорится, что ваши классы пишутся как std::string
(или гипотетический int
класс).
Убедившись, что методы, которые не не изменяют класс, помечены const
, вы можете иметь const Foo
объекты, свободно разделяемые между потоками, безопасные, зная, что не может бытьгонки данных, потому что не имеет модификаций .
Это немного более тонко с const Foo &
ссылками.Вы не знаете, является ли базовый объект действительно const
, или что const
был добавлен к ссылке, и где-то еще могут произойти модификации.Доступ к таким объектам все еще должен быть синхронизирован между потоками.