rcpp - 从 Rcpp 函数生成 XPtr
问题描述
我正在编写一个R
包,其中一个函数Rcpp::XPtr
作为输入(作为 a SEXP
)。但是,创建XPtr
fromRcpp::Function
是我想要在包内做的事情(即,用户应该能够输入Function
)。
例如,我的包接受如下生成的输入,这需要用户编写一个附加函数(此处putFunPtrInXPtr()
)并运行该函数R
以生成XPtr
(此处my_ptr
)。
#include <Rcpp.h>
using namespace Rcpp;
typedef NumericVector (*funcPtr) (NumericVector y);
// [[Rcpp::export]]
NumericVector timesTwo(NumericVector x) {
return x * 2;
}
// [[Rcpp::export]]
XPtr<funcPtr> putFunPtrInXPtr() {
XPtr<funcPtr> testptr(new funcPtr(×Two), false);
return testptr;
}
/*** R
my_xptr <- putFunPtrInXPtr()
*/
如何编写用户提供Function user_fun
并创建的内容XPtr
?
我试过了
XPtr<funcPtr> package_fun(Function user_fun_input){
XPtr<funcPtr> testptr(new funcPtr(&user_fun_input), false);
}
user_fun_input
是包函数内的参数名称,但我收到以下错误
cannot initialize a new value of type 'funcPtr' (aka 'Vector<14> (*) (Vector<14>') with an rvalue of type 'Rcpp::Function *' (aka 'Function_Impl<PreserveStorage> *')
此外,创建指针还有一个R
步骤,我不确定如何在包(我的.cpp
文件)中实现它。
我认为XPtr
from的创建Function
可能会让用户感到困惑,因此最好将其Function
作为输入并在包内创建指向它的指针。我确实XPtr
在我的包中使用它来提高速度。
建议非常感谢!
解决方案
推荐阅读
- jira - 使用逻辑应用从 SharePoint 创建 JIRA 问题
- python - 如何在 python 中使用对象作为 vaue 进行多处理
- django - 'Post' 对象没有属性 'get_absolute_url' Django
- python - 在 Pandas 中打开和读取 zip 文件夹中的 txt 文件时出现问题
- arrays - 在c中将字符串转换为二维数组
- composer-php - 如何在 Windows 10 中更改作曲家版本
- react-native - 如何在 react-native 中保存和加载 tflite 版本的posenet?
- javascript - NestJS 事件发射器
- paddle-paddle - PaddleOCR 性能与 Tesseract 相比如何?
- python - 警告:张量流:模型是用形状构造的