【发布时间】:2017-03-27 01:33:30
【问题描述】:
我有一个 R 函数 bar,它接受另一个 R 函数 foo,定义如下:
foo <- function(x,y) x + y
bar <- function(foo, z, ...) z + foo(...)
对bar 的调用将采用以下形式:
bar(foo, 1,2,3)
现在foo 定义如上,我想创建bar 的C++ 版本。这是我尝试过的:
library(Rcpp)
cppFunction(
'
double bar(Function foo, double z, ...) {
return z + foo(...);
}
')
这显然行不通。在 C++ 中定义这个函数的正确方法是什么?
谢谢。
【问题讨论】:
-
如果您在 R 端有
foo和所有可用的参数 (...),为什么不直接将foo(...)的结果传递给 Rcpp 函数呢?从 C++ 评估foo(..)总是会比直接从 R 端评估foo(...)慢。