我使用RCPP_MODULE来包装下面的类。
struct Dummy
{
};
struct Test
{
Dummy* get_dummy() { return nullptr; }
Dummy* _dummy;
};
RCPP_MODULE(AF)
{
class_<Dummy>("Dummy")
.constructor();
class_<Wrap>("Wrap")
.constructor()
.method("get_dummy", &Wrap::dummy);
}
当在R.中调用Wrap $ get_dummy时,is.null()返回false。做了一些检查,似乎应该使用R_NilValue。但要使用R_NilValue,get_dummy()的返回类型需要为SEXP。
是否必须更改get_dummy(),如下所示
SEXP get_dummy() { return R_NilValue; // or return Rcpp::Module_wrap<Dummy *>(_dummy) if a valid pointer is intended.