Lyle asked:

> Because the format string for rb_scan_args() only uses single 
> digits to determine the number of required and optional 
> arguments this means that you can't have more than nine 
> of either, right?

I guess I've seen somewhere limit of 17 arguments, or so. I guess you're
unable to check directly with rb_scan_args for more than 9 args.

But:

1) you can gather the args by specifying '*' and examining 
   the array on your own
2) you could try to persuade matz to change 

      if (ISDIGIT(*p)) {
        n = *p - '0';

    to

      if (ISHEXDIGIT(*p)){
        n = hexDigit(*p);

I know I know nothing about this, but I wonder if those 9 params are really
needed, and there's no room of grouping/combining several parameters into
specific objects. Or even group whole parameter list into parameter object.
Of course it's not possible to change the C++ interface...

	- Aleksi