在 R 包中包含 hpp 文件

elc*_*ano 3 r rcpp r-package

我正在编写一个 R 包,使用 Rcpp 将用 C++ 编写的函数调用到 R 代码中。其中一些函数和模板按照 boost 使用的约定编写在扩展名为 .hpp 的文件中(也在此处讨论)。

这在构建 ( R CMD build .) 和检查 ( R CMD check --as-cran package.tar.gz) 包时不会导致错误,但会返回下一个警告:

Subdirectory ‘src’ contains:
  file.hpp example.hpp
These are unlikely file names for src files
Run Code Online (Sandbox Code Playgroud)

好的,这不是一个大问题,但我担心的是,为什么会出现警告?在 R 社区中命名 *hpp 文件是否被认为是一种不好的做法?为什么我应该使用 *cpp/*h 文件而不是 *hpp 作为模板,是否有客观或社区原因?

duc*_*ayr 7

我最初将此信息作为评论留下,但意识到它实际上回答了我认为的您的问题,所以这里是:

正如 Dirk Eddelbuettel 在评论中指出的那样,当您对 R 扩展包的 R 核心团队政策有疑问时,最好的办法是查看他们出色的编写 R 扩展手册。本手册告诉您几乎所有您可能需要知道的信息。

特别是在您的情况下,您需要查看第 1.1.5 节,其中解释了“[R 核心团队] 建议 [s] 使用 .h 作为标头”,因为(正如他们在脚注 18 中解释的那样)“使用 .hpp 不是保证便携。”