gpt4 book ai didi

c++ - 未记录的代码对象警告我不想导出的函数

转载 作者:太空宇宙 更新时间:2023-11-04 15:56:47 25 4
gpt4 key购买 nike

我正在尝试使用 Rcpp 编写 R 包。除了 R CMD check my_package 发出的警告外,一切正常。

Status: 1 WARNING
checking for missing documentation entries ... WARNING
Undocumented code objects:
‘shiny_function’
All user-level objects in a package should have documentation entries.

这里 shiny_function 是用 C++ 实现的,并使用 Rcpp 属性导出

// [[Rcpp::export]]
int shiny_function(int arg) {
return arg;
}

问题是我想在导出到 R 时将它“重命名”为 shiny.function,所以在 R/shiny_function.R 中我有

shiny.function <- function(arg) {
.Call("_my_package_shiny_function", arg)
}

收到此警告后,我将 NAMESPACE 修改为 exportPattern("^[^_]+") 以避免导出名称中带有下划线的函数,但警告仍然存在。

如何“重命名”用 C++ 编写的 Rcpp 函数?

最佳答案

这是非常基本的:当您添加标签 [[Rcpp::export]] 时,您会得到您所要求的:导出函数。而导出意味着全局可见

如果您不想这样,只需删除标签即可。您仍然有一个可以通过 .Call() 以通常方式处理的函数,并且您可以在 R 层做任何您想做的事情,包括重命名、参数控制和验证等等。

如果您仔细查看(据我所知,内容丰富)文档,您会在 Rcpp 属性 小插图中看到您还可以控制导出的内容和对象( em> 你可以拥有对 C++ 层可见的函数)。

关于c++ - 未记录的代码对象警告我不想导出的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55420290/

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