I have this function:
Code: Select all
(defcfun ("create_std_vectorf" %vec-float) vector-float)
Code: Select all
CV> (VEC-FLOAT)
#<STD-VECTOR-FLOAT {100352FEA3}> <---It outputs this....what is this called, a METAOBJECT???
;; VECTOR-FLOAT
(define-foreign-type vector-float ()
((garbage-collect :reader garbage-collect :initform nil :initarg
:garbage-collect))
(:actual-type :pointer)
(:simple-parser vector-float))
(defclass std-vector-float ()
((c-pointer :reader c-pointer :initarg :c-pointer)))
(defmethod translate-to-foreign ((lisp-value std-vector-float) (c-type vector-float))
(values (c-pointer lisp-value) lisp-value))
(defmethod translate-from-foreign (c-pointer (c-type vector-float))
(let ((vector-float (make-instance 'std-vector-float :c-pointer c-pointer)))
(when (garbage-collect c-type)
(tg:finalize vector-float (lambda () (del-vec-flt c-pointer))))
vector-float))