C++ nullptr可以';R中的is.null无法检测到

C++ nullptr可以';R中的is.null无法检测到,c++,r,rcpp,C++,R,Rcpp,我使用RCPP_模块包装了下面的类 struct Dummy { }; struct Test { Dummy* get_dummy() { return nullptr; } Dummy* _dummy; }; RCPP_MODULE(AF) { class_<Dummy>("Dummy") .constructor(); class_<Wrap>("Wrap") .constructor() .method("g

我使用RCPP_模块包装了下面的类

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);
}
struct-Dummy
{
};
结构测试
{
Dummy*get_Dummy(){return nullptr;}
假人*\u假人;
};
RCPP_模块(AF)
{
类(“虚拟”)
.constructor();
类(“包装”)
.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;//如果需要有效指针,则返回Rcpp::Module_wrap(\u dummy)。

< /COD>作为“/CODE”的所有接口正确。调用< /COD>必须是“代码>”,“EXP< <代码>。但是RCPPP1模块将C++对象转换为SEXP,此问题仅用于检测NulLPTR。如果GET*DimMy()返回有效指针,则不需要更改GETSUMMYME()的签名。工作完美。你假设我们有一个
nullptr
R\u NilValue
的转换器。我以为有一个。所以答案是否定的。谢谢你澄清这一点。
SEXP get_dummy() { return R_NilValue; // or return Rcpp::Module_wrap<Dummy *>(_dummy) if a valid pointer is intended.