Что означает этот фрагмент стандарта о use_count () shared_ptr?
При попытке обернуть голову вокруг проблемы, показанной вэтот вопрос Я застрял в следующем предложении из [util.smartptr.shared] / 4:
[...] Изменения вuse_count()
не отражают модификации, которые могут вводить данные гонки.
Я не понимаю, как я должен это читать, и какие выводы я должен сделать. Вот несколько интерпретаций:
Вызовuse_count()
не вводит данные гонки (но это должно быть гарантированоconst
-только этой функции вместе с соответствующими общебиблиотечными гарантиями)Значение, возвращаемоеuse_count()
не зависит («не отражает»?) результат операций, которые требуют атомарности или синхронизации (но каковы эти соответствующие операции?)use_count()
выполняется атомарно, но без предотвращения переупорядочения процессором или компилятором (т.е. без последовательной согласованности, но почему бы не упомянуть конкретную модель?)Мне кажется, что ничего из вышеперечисленного не вытекает из этого предложения, и я затрудняюсь понять его.