[Cffi-devel] Fw: Casting variables and functions
Stelian Ionescu
sionescu at cddr.org
Sun Mar 30 14:45:10 UTC 2014
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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <https://mailman.common-lisp.net/pipermail/cffi-devel/attachments/20140330/f3def4b7/attachment.sig>
More information about the cffi-devel
mailing list