您好。我正在开发一个Ruby C ++扩展,我有以下函数,其中“self”对象是结构类型或Exception类型。
VALUE myFunction(VALUE self, VALUE args)
{
// Some functon call and process on args argument
}
现在在上面的函数中我需要知道对象“self”的确切类型(即rb_eException或rb_cStruct), 我尝试使用以下API,
if(Qtrue == rb_obj_is_kind_of(self, rb_eException))
{
std::cout<<"self is of rb_eException type "<<std::endl;
}
就像上面的rb_cStruct,rb_cClass等一样,但我只获得了“rb_cClass”类型的Qtrue。 如何获得“self”对象的确切类型(即rb_cStruct或rb_eException)? 提前谢谢。
答案 0 :(得分:1)
您可以使用rb_obj_class
获取适当的VALUE
。