如何在Armadillo(C ++)中将函数作为参数传递?

时间:2019-07-16 04:11:18

标签: c++ r parameter-passing armadillo

我想做的事情与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中的犰狳中将函数作为参数传递”?谢谢!

0 个答案:

没有答案