gpt4 book ai didi

c++ - 如何在 Ruby 扩展 C++ 中获取对象的确切类型?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:34:12 25 4
gpt4 key购买 nike

嗨。我正在开发一个 Ruby C++ 扩展,我有以下函数,其中“self”对象是结构类型或异常类型。

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)?提前致谢。

最佳答案

您可以使用 rb_obj_class 获取相应的 VALUE 类。

关于c++ - 如何在 Ruby 扩展 C++ 中获取对象的确切类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7807382/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com