-1
У меня есть этот скаляр функции, который является оболочкой двух описаний функций, над которыми он был прокомментирован. My? как я MEM-Ареф выход (scalar 1 2 3 4)
, который #<CV-SCALAR {10044559D3}>
Я думаю #<CV-SCALAR {10044559D3}>
называется Meta-ObjectКак сделать mem-isf результатом метаобъекта в CFFI
;; Scalar* cv_create_Scalar(double val0, (double val1, double val2, double val3)
(defcfun ("cv_create_Scalar" %scalar) scalar
(val0 :double)
(val1 :double)
(val2 :double)
(val3 :double))
(define-foreign-type scalar()
((garbage-collect :reader garbage-collect :initform nil :initarg
:garbage-collect))
(:actual-type :pointer)
(:simple-parser scalar))
(defclass cv-scalar()
((c-pointer :reader c-pointer :initarg :c-pointer)))
(defmethod translate-to-foreign ((lisp-value cv-scalar) (c-type scalar))
(c-pointer lisp-value))
(defmethod translate-from-foreign (c-pointer (c-type scalar))
(let ((scalar (make-instance 'cv-scalar :c-pointer c-pointer)))
(when (garbage-collect c-type)
(tg:finalize scalar (lambda() (del-scalar c-pointer))))
scalar))