如何将R中的C ++对象导出回C ++?

时间:2012-10-02 13:58:00

标签: r rcpp

在下面的示例中,使用RCPP_MODULE将一些普通的c ++方法导出到R中没有任何困难,除了使编译失败的方法clone

struct C
{
    void clone(C* other)
    {
         *this = *other;
    }
};

#include <Rcpp.h>
using namespace Rcpp;

RCPP_MODULE(mod){
    class_<C>("C")
        .method("clone", &C::clone)
        ;
};

如何导出clone方法以便我可以引用在R中创建的其他C ++类?

2 个答案:

答案 0 :(得分:5)

以下适用于Rcpp的开发版本。请参阅我博客上的this article

#include <Rcpp.h>
using namespace Rcpp;

RCPP_EXPOSED_CLASS(C)

struct C
{
    void clone(const C& other)
    {
         *this = other;
    }
};

RCPP_MODULE(play){
    class_<C>("C")
        .method("clone", &C::clone)
        ;
};

答案 1 :(得分:1)

有一个名为clone的Rcpp方法,所以请尝试重命名你的方法。