A generic solution (cont'd) 1 VALUE rb_cpp_num2long(VALUE x) { 2 return (VALUE)(NUM2LONG(x)); 3 } 4 5 unsigned long CPP_NUM2INT(VALUE x) 6 { 7 return (unsigned long)(rb_cpp_protect( 8 Conversion_Helpers::rb_cpp_num2ulong, x)); 9 }