gpt4 book ai didi

c++ - Rcpp - 定义采用 R 函数和省略号参数的 C++ 函数

转载 作者:搜寻专家 更新时间:2023-10-30 23:53:33 25 4
gpt4 key购买 nike

我有一个 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){

}

关于c++ - Rcpp - 定义采用 R 函数和省略号参数的 C++ 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40571373/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com