LINUX.ORG.RU

История изменений

Исправление monk, (текущая версия) :

а что если тебе потом надо это значение сунуть в другую foreign-функции? А что если в структуре лежит указатель и как отличить эту ситуация с ситуацией, когда в структуре лежит значение?

Вот эти вопросы и сподвигли меня на создание этой темы.

если тебе потом надо это значение сунуть в другую foreign-функции

Если пользователь знает, что значение надо будет передать в функцию, ожидающую указатель, а не строку (это достаточно редкий случай), он будет вызывать (ffi-func/ptr ...), а не (ffi-func ...).

если в структуре лежит указатель и как отличить эту ситуация с ситуацией, когда в структуре лежит значение

В структуре аналогично. Аксессоры можно делать обычные и /ptr.

Минус тот же, что в ctypes: (eq? (str-field (left struct)) (str-field (left struct))) = #f

Исходная версия monk, :

а что если тебе потом надо это значение сунуть в другую foreign-функции? А что если в структуре лежит указатель и как отличить эту ситуация с ситуацией, когда в структуре лежит значение?

Вот эти вопросы и сподвигли меня на создание этой темы.

если тебе потом надо это значение сунуть в другую foreign-функции

Если пользователь знает, что значение надо будет передать в функцию, ожидающую указатель, а не строку (это достаточно редкий случай), он будет вызывать (ffi-func/ptr ...), а не (ffi-func ...).

если в структуре лежит указатель и как отличить эту ситуация с ситуацией, когда в структуре лежит значение

В структуре аналогично. Аксессоры можно делать обычные и /ptr.

Минус тот же, что в ctypes: (eq? (str-field (left (struct)) (str-field (left (struct))) = #f