Что на самом деле делает bindMemory(to:capacity:)?

Документация Apple по методу bindMemory(to:capacity:) на UnsafeRawPointer гласит:

Используйте метод bindMemory(to:capacity:) для привязки памяти, на которую ссылается этот указатель, к типу T.

Что означает привязка памяти к типу? Перемещает ли он байты в место в памяти, чтобы удовлетворялось alignment для типа? Это дорогостоящая операция?

Мне приходится часто использовать его в своей кодовой базе, и мне нужно знать связанные с этим затраты.

PS: я знаю, что это используется, чтобы понять смысл байтов. Что я хочу знать, так это то, что он делает как часть процесса привязки.


person Rohan Bhale    schedule 21.05.2019    source источник
comment
На forums.swift.org/t/what- есть полезная информация. is-binding-memory/4418, например «Привязка памяти сообщает компилятору, что ячейки памяти безопасны для типизированного доступа. Во время выполнения ничего не происходит, пока кто-нибудь не напишет средство для дезинфекции типов. ...” и “... вызов bindMemory(to:capacity:) не имеет наблюдаемых побочных эффектов во время выполнения в момент вызова”   -  person Martin R    schedule 21.05.2019
comment
Возможный дубликат stackoverflow.com/q/47940167/2976878   -  person Hamish    schedule 21.05.2019