【发布时间】:2019-04-26 03:32:12
【问题描述】:
我看到可以使用 Rcpp 将 R 函数作为参数传递给 C++。例如,您可以这样做:
// [[Rcpp::export]]
arma::mat example_cpp_func(Rcpp::Function my_r_func, arma::mat a){
return Rcpp::as<arma::mat>(my_r_func(a));
}
这很好,但我正在寻找稍微不同的东西。
设以下函数:
arma::mat f1(arma::mat& a){
return a;
}
arma::mat func_2(Rcpp::Function g, arma::mat a){
return Rcpp::as<arma::mat>(g(a));
}
我想在第三个函数中使用func_1 作为参数调用func_2。那可能吗?例如,我正在寻求这样做:
// [[Rcpp::export]]
arma::mat func_3(arma::mat a){
return func_2(func_1, a);
## ^^^^ Pass a C++ function as a parameter
}
这对于 R 来说是可能的,但是当我尝试使用 Rcpp/RcppArmadillo 时,我收到以下错误:
无法将 'f1' 从 'arma::mat ()(arma::mat&)' {aka 'arma::Mat ()(arma::Mat&)'} 转换为 ' Rcpp::Function' {aka 'Rcpp::Function_Impl'}
【问题讨论】:
标签: rcpp rcpparmadillo