【发布时间】:2015-02-01 11:46:07
【问题描述】:
This blog entry 由 Dirk Edelbuettel 指出:
Rcpp,作为一个 CRAN 包,遵循 CRAN 政策,因为它声称的不可移植状态(至少)不支持此标准 [C++11]。
该博客条目已有两年历史,我一直想知道这是否仍然正确(关于 CRAN 政策,我没有找到任何关于 C++11 的提示,以及 Rcpp 支持)。
此外,我想知道这究竟意味着什么。我在src/MAKEVARS 文件中使用了CXX_STD = CXX11 语句(而不是博客条目中建议的Sys.setenv("PKG_CXXFLAGS"="-std=c++11"))。这似乎适用于我正在使用的 C++11 功能(主要是 tgamma 函数)、Rcpp 和 R。但是当我将我的包提交给 CRAN 时,我会被激怒吗?该软件包是否不适用于某些操作系统?
【问题讨论】:
-
这一切都在Writing R Extensions手册中有详细说明,特别是参见标题为使用C++11的1.2.4节。
-
我已阅读并遵守本手册这一部分的说明。但是您的文章提到了 CRAN 政策,而不是编写 R 扩展手册,这是两个不同的东西,恕我直言。或者这只是不精确,仅此而已?
-
你读过Rcpp FAQ吗?我们写它是有原因的,因为您的问题与之前 很多次 提出的问题之间存在共性。也请考虑使用 rcpp-devel 邮件列表而不是这个。 Viel Glueck。
-
感谢您的提示,我不知道 Rcpp 常见问题解答和 rcpp-devel 列表。我在 Stackoverflow 上进行了彻底的搜索,但没有找到答案,所以我觉得问这个问题是合法的(抱歉,如果我将其误解为问答平台)。关于 Rcpp 常见问题解答:它在哪里声明 a) R 和使用 Rcpp 的包都必须使用相同的编译器版本进行编译,并且 b) CRAN 策略不再拒绝使用 C++11 的包?提前感谢您将我指向正确的条目。我在那里找到的唯一东西是:
The default compilers on all the common platforms are suitable. -
总是更好地找到源头,而不是仅仅依靠“在 Stackoverflow 上彻底搜索”。 a) 和 b) 都应该与 CRAN 策略 一起在 Writing R Extensions(这是规范)中可用。两者都可以从 R 项目站点和我们自己的 r tag info 页面获得。