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))

-- 
Stelian Ionescu a.k.a. fe[nl]ix
Quidquid latine dictum sit, altum videtur.

Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
Cffi-devel mailing list
Cffi-devel@common-lisp.net
http://common-lisp.net/cgi-bin/mailman/listinfo/cffi-devel

Reply via email to