Здравствуйте, WolfHound, Вы писали:
WH>Расскажи ка мне про производительность InterlockedIncrement/InterlockedDecrement которые необходимы для подсчёта ссылок в многопоточной программе.
1. Для ref-counted smart pointers лишние передёргивания ссылок требуются только когда время жизни объекта реально "раздваивается", в большинстве же случаев достаточно move. Эти редкие атомарные ++ -- конечно же прям наисерьезнейшая проблема по сравнению с stop-the-world и прочими GC радостями.
2. Это всего лишь один из вариантов smart-pointer'ов. Есть другие — например есть ref-counted без синхронизации, а есть и вовсе без всяких counter'ов.
3. Значимость smart pointers сильно преувеличенна теми, кто полагает что для каждого new в управляемых языках, единственная альтернатива на C++ это smart pointer. На практике же, для большинства случаев достаточно scoped-based lifetime.