我正在构建一个R包,并有一个要声明的常量wjtConstant
。我希望为包创建的R函数和.cpp函数都可以访问此常量
对于R函数,我可以用一行创建一个.R文件:wjtConstant = 5
并将此文件放在“R”文件夹中以进行软件包开发。
对于cpp函数,我可以将以下行放在“inst / include”文件夹中的头文件中:const int wjtConstant = 5;
我可以在两个地方都声明常量,并且结果可以按需工作(即,R和cpp函数都可以使用常量),但这有点草率。有什么方法可以声明一次常量,并且可以同时使用R函数和cpp函数吗?
最佳答案
您可以在R中使用 Activity 绑定(bind)来调用C++函数。像这样:
#include <Rcpp.h>
using namespace Rcpp ;
const int wjtConstant = 5;
// [[Rcpp::export]]
int get_wjtConstant(){ return wjtConstant ; }
在R中:
> makeActiveBinding("wjtConstant", get_wjtConstant, environment() )
> wjtConstant
[1] 5
这样,您可以在R和C++中直接使用
wjtConstant
。