首页 > 3 ruby/c++, 编程 > rb_yield让ruby/c++更加紧密

rb_yield让ruby/c++更加紧密

2009年1月26日 发表评论 阅读评论

用c++写ruby模块提升性能效果显著一文让我初尝甜头,但未免连render都用c++也太得不尝失。自从使用了rb_yield,一切问题迎刃而解。

如代码

class Test
  def foo
    yield
  end
end

相对应的c++代码则为

#include "ruby.h"
typedef VALUE(*RUBY_FUNC)(...);
extern "C" VALUE t_foo(VALUE self)
{
  //do something by c++
  rb_yield();
  //do something by c++
}
VALUE cTest = rb_define_class("Test",rb_cObject);
rb_define_method(cTest,"foo",(RUBY_FUNC)t_foo,1);

非常的方便有效。

分类: 3 ruby/c++, 编程 标签:
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.