我想做的事情与this question类似。即,将函数作为参数传递。但是我想在R的Armadillo中实现它。
我发现this answer是相关的,因为它是C ++中的实现。但是,在我将代码粘贴到R中的Armadillo并运行它之后,出现了以下错误
“从类型'std :: __ 1 :: __ nat'的返回值到函数返回类型'double'的可行转换”。
这是我的代码
#include <Rcpp.h>
#include <functional>
// [[Rcpp::export]]
double Combiner(double a, double b, std::function<double (double,double)> func){
return func(a,b);
}
double Add(double a, double b){
return a+b;
}
double Mult(double a, double b){
return a*b;
}
/*** R
Combiner(12,13,Add)
Combiner(12,13,Mult)
*/
我的代码有什么问题?还是有其他方法“在R中的犰狳中将函数作为参数传递”?谢谢!