繁体   English   中英

Rcpp - 定义一个带有R函数和省略号参数的C ++函数

[英]Rcpp - Define a C++ function that takes an R function and an ellipsis argument

我有一个R函数bar ,它带有另一个R函数foo ,定义如下:

foo <- function(x,y) x + y
bar <- function(foo, z, ...) z + foo(...)

bar的调用将具有以下形式:

bar(foo, 1,2,3)

现在使用上面定义的foo ,我想创建一个C ++版本的bar 这是我尝试过的:

library(Rcpp)
cppFunction(
'
  double bar(Function foo, double z, ...) {
  return z + foo(...);
 }
 ')

这显然不起作用。 在C ++中定义此函数的正确方法是什么?

谢谢。

在将省略号输入Rcpp之前,可能更容易将省略号转换为列表

bar <- function(foo, z, ...) {
   args <- list(...)
   bar_internal(foo, z, args)
}

然后你的Rcpp函数可以简单地采用Rcpp::List而不是省略号。

double bar_internal(Function foo, double z, List args){

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM