Perfect. I was hoping that this would be the solution. I am reading the sections on getting this behavior more carefully. Thanks for the clarification.
On Tuesday, May 24, 2016 at 2:04:22 PM UTC-7, Steven G. Johnson wrote: > > > > On Tuesday, May 24, 2016 at 3:01:12 PM UTC-4, Gabriel Gellner wrote: >> >> Working thru the incredible guide: >> http://julialang.org/blog/2013/05/callback >> >> I am stuck on understanding if there are any work arounds for being able >> to use julia anonymous functions in `ccall` callback functions. >> Specifically I am interested in the common case of wanting to use function >> parameters without having to do the C convention of passing around a void >> *param pointer as the last argument of the callback. >> (ie instead of having func(x, y, param) I could do (x, y) -> func(x, y, >> a, b) to set the values for the parameters of a julia callback function >> that is passed to a ccall routine) >> > > As explained in the guide (see the qsort_r example), you only need for the > C API to have a void* pointer that you pass around. On the Julia side, > this can be completely hidden from the caller. (e.g. in the qsort_r > example, the Julia lessthan function passed to qsort! does not need a > "param" argument.) > > (This is how NLopt.jl, Cubature.jl, etcetera work: the C API uses void* > pointers, but this is hidden from the Julia callers exactly as described in > the blog post.) >