R中的is.null无法检测到nullptr

时间:2017-07-25 03:34:55

标签: c++ r rcpp

我使用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.

0 个答案:

没有答案