C++ std::string 到 Ruby VALUE

标签 c++ ruby ruby-1.9.3 ruby-c-extension

如何将 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/

相关文章:

c# - Interlocked.CompareExchange<Int> 使用 GreaterThan 或 LessThan 而不是相等

ruby-on-rails - 抛出 normalize_yaml_input 中的无效字节序列错误?

ruby - Rspec 似乎没有针对正确的 Controller

segmentation-fault - Ruby 1.9.3-p0 和 RSpec 导致频繁的段错误

ruby-on-rails - Rails 日志文件 "not opened for writing"

Ruby CGI::Cookie 原始 cookie 解析

c++ - is_constexpr 在 C++11 中是否可行?

c++ - Qt C++初始化列表困惑

c++ - 对程序的编译时属性进行基准测试

ruby - GTK - 不要在选择/悬停时突出显示按钮