On Sun, 2014-03-30 at 07:18 -0700, Joeish W wrote:
Thanks for getting back to me., I really appreciate it
Using coerce though I'm already casting it to a float on the lisp side...I was wondering if I can cast a 4 to a float with CFFI and have the output be a 4.0f0 like it works in C...without doing anything on the Lisp side
CFFI doesn't do automatic coercions, but you can do it with a custom type:
(define-foreign-type float+int () () (:actual-type :float) (:simple-parser float+int))
(defmethod expand-to-foreign (value (type float+int)) `(coerce ,value 'float))
(with-foreign-object (val :float) (setf (mem-ref val 'float+int) 4) (mem-ref val :float))