使用roxygen2记录Rcpp模块公开的方法

6

我在我的软件包中有一个Rcpp模块,除了公开类之外,还公开了一些方法。是否有可能使用roxygen2来记录(C++端)的这些方法? 我的模块看起来像这样:

RCPP_MODULE(BayesFst) {
using namespace Rcpp;

class_<BayesFst>( "BayesFst")
.default_constructor("Standard constructor")
.method("printData", &BayesFst::printData)
.method("printCounts", &BayesFst::printCounts)
.method("printInitialPvals", &BayesFst::printInitialPvals)
.method("printFstSummary", &BayesFst::printFstSummary)
.method("run", &BayesFst::run)
.method("setData", &BayesFst::setData)
.method("setPriorParameters", &BayesFst::setPriorParameters)
.method("setRunParameters", &BayesFst::setRunParameters)
.method("ldiriTest", &BayesFst::ldiriTest)
.property("interaction", &BayesFst::getInteraction, &BayesFst::setInteraction)
;

我希望能够记录下所有这些方法。一个简单的想法是将类隐藏在包装函数后面,然后从R包装函数内调用这些方法,但这种方式对我来说感觉有点不太优雅。

我尝试在函数中添加roxygen注释行,但由于它们没有以相同的方式导出,因此似乎无法捕获文档。

1个回答

6
您将无法依靠Rcpp传递roxygen文档,就像compileAttributes()所做的那样...因为您没有调用compileAttributes()。请随意构建(并测试,然后贡献 :))一个新的辅助函数;否则,我将在R文件中使用roxygen并从那里继续。 编辑: 我还提交了一个问题,以便我们不会忘记它。

这个主题有什么新的进展吗? - yannick
不是的,但欢迎贡献。最好在问题票上讨论。 - Dirk Eddelbuettel
我想知道“在R文件中只需使用Roxygen”是什么意思。一旦构建了软件包,如何稍后添加文档? - Egus
你用过 roxygen2 吗?实质上,你在 R/ 目录中进行编辑,调用它并且它会写入和/或更新 man/*Rd 文件。所以这就像是编辑代码——你改变了包的准备工作,使其成为一个新的(次要或主要)版本发布。有很多工具也可以帮助你——看看一些教程吧。 - Dirk Eddelbuettel
roxygenize() 在 R 文件中的 Rcpp::loadModule("myModule", TRUE) 命令失败,出现错误 无法加载模块"myModule":初始化模块指针失败。R 版本为 3.5.1,Rcpp_1.0.0,roxygen2_6.1.1,devtools_2.0.1。 - Egus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接