Для своих reference-box внутри value type проверяют уникальность ссылки перед мутацией: если не уникальна — копируют box, затем меняют.
Разбор
- Так устроены стандартные коллекции.
- Даёт value semantics + дешёвые копии.
- Нужен
final class Storage.
- Ошибки реализации = неожиданный sharing.
Итог
COW вручную — способ построить эффективные value types с буфером.