I try to avoid things that make threading a bad idea, because a method of moving instances between threads would be nice, eventually.
Anyway, I have to admit to liking your _ENIGMA_VARARGS idea. I think such an implementation would be quite useful, and I know how I'd do it.
typedef double *_ENIGMA_DOUBLEARGS typedef varant *_ENIGMA_VARARGS
When the parser sees a function taking parameter typedef _ENIGMA_VARARGS, it does something like what you said, but inline: min(1,2,3) becomes min((variant[]){3,1,2,3})
I was looking for an excuse to track parameter types more closely, and this has given it to me.
|