C++11 与 R 和 Rcpp:由 CRAN 策略支持

C++11 with R and Rcpp: supported by CRAN policies?

本文关键字:CRAN 策略 支持 Rcpp C++11      更新时间:2023-10-16

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 提交包裹时,我会被撕裂吗?该软件包是否不适用于某些操作系统?

以上

所有评论,并尝试:

// [[Rcpp::plugins(cpp11)]]

有几个软件包需要C++11,在CRAN中搜索SystemRequirements: C++11,并Rcpp,例如 http://cran.us.r-project.org/web/packages/contoureR/index.html,它们在不使用Rcpp::plugins(cpp11)的情况下具有最简单的软件包配置。

我的情况很奇怪,因为出于晦涩的 CRAN 维护者原因,在深奥的平台上,OpenMP 和 C++11 不能一起使用(有关如何使用配置脚本完成此操作,请参阅 https://github.com/jackwasey/icd)。