Hello,

Is it possible with NativeBoost to create a binding for a variadic function ?

I've seen the printf example in NBCPrinter but this implementation is kind of cheating since it always pass just a %s as format and one already formatted string to the C function.

I've written a simple variadic function which adds every integer it receives as argument (first argument is for the number of following arguments) :

int add(int number,...);

In Pharo I've tried something like this :

add: number arg1: first arg2: second
<primitive: #primitiveNativeCall module: #NativeBoostPlugin>

^ self nbCall: #( int add (int number, int first, int second))
�� module: 'libMyLib.so'

and it works fine with two arguments.

Basically, doing so, I would need one method per number of arguments so it's not very cool.

I thought that maybe I could pass an array as argument to my Pharo method but I didn't really find a way to figure out how to define the nbCall without having a "Generic failure".

add: number args: anArray
<primitive: #primitiveNativeCall module: #NativeBoostPlugin>

^ self nbCall: #( int add (int number, ??? anArray))
�� module: 'libMyLib.so'

Do you have an idea ?

Thanks,

Matthieu