如何将 C++ std::string
对象转换为 Ruby VALUE
对象?
我尝试了 rb_str_new2(c_string)
,但没有成功。
我有一个函数
VALUE foo(){return rb_str_new2(c_string);};
然后给出错误信息:
cannot convert ‘std::string {aka std::basic_string<char>}’ to ‘const char*’ for argument ‘1’ to ‘size_t strlen(const char*)’
最佳答案
您正在传递 std::string
到函数,但它需要一个以 null 结尾的 const char *
。
std::string::c_str()
成员函数可以用来获取一个:
rb_str_new_cstr(string.c_str());
关于C++ std::string 到 Ruby VALUE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10212566/