LOAD_RCPP_MODULE
在最新Rcpp
中定义如下:
#define LOAD_RCPP_MODULE(NAME) \
Shield<SEXP> __load_module_call__( Rf_lang2( GET_MODULE_SYM, _rcpp_module_boot_##NAME() ); \
Rf_eval(__load_module_call__), R_GlobalEnv );
似乎是&#39;)&#39;调用Shield的构造函数和&#39;)&#39;在
__load_module_call__
之后删除Rf_eval。
也很好奇应该如何使用这个宏。只在RInside中找到一个例子
R["bling"] = LOAD_RCPP_MODULE(bling);
但显而易见的是,这行代码无法编译。它实际上已被注释掉了。
顺便说一句,我得到的解决方法是直接调用宏中的代码来加载模块。假设模块名称为&#34; Test&#34;,代码如下,R是RInside的实例。Shield<SEXP> __load_module_call__( Rf_lang2( GET_MODULE_SYM, _rcpp_module_boot_Test() ) );
R["Test"] = Rf_eval(__load_module_call__, R_GlobalEnv );