1

如何将 C++std::string对象转换为 RubyVALUE对象?

我试过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*)’
4

1 回答 1

4

您正在传递std::string给该函数,但它需要一个 null-terminated const char *

成员函数可std::string::c_str()用于获取:

rb_str_new_cstr(string.c_str());
于 2012-04-18T15:36:07.977 回答