我需要在运行时检查Rcpp块中函数的arity。我想做的是类似以下的事情:
double loglikelihood(Rcpp::List data, Rcpp::List params, SEXP i, Rcpp::RObject custom_function) {
Rcpp::Function f = Rcpp::as<Rcpp::Function>(custom_function);
double res = 0.0;
if (arity(f) == 3) {
res = Rcpp::as<double>(f(data, param, i));
} else if (arity(f) == 2) {
res = Rcpp::as<double>(f(data, param));
}
return res;
}
但是,我看到的关于Rcpp的有限文档似乎没有包含用于检查Rcpp::function的arity的函数。有什么办法可以做到这一点吗?
“有限文档”(目前仅有10个pdf小插图)告诉您,除其他外,我们从R本身得到的所有信息是
现在,我们用R注册已编译函数(通常在文件