我在Ubuntu 16.04 LTS上使用RStudio,并使用Rcpp为R包创建了代码。
我的代码工作正常,直到我把它移到R包中。现在我收到了错误:
error: ‘unique_ptr’ is not a member of ‘std’
有罪的代码行是:
typedef std::list<std::unique_ptr<Random> > ears_t;
我的cpp文件的顶部包含对cpp11插件的引用
// [[Rcpp::plugins(cpp11)]]
// [[Rcpp::depends(BH)]]
#include <Rcpp.h>
#include <vector>
#include <memory>
#include <boost/ptr_container/ptr_vector.hpp>
using namespace Rcpp;
描述文件链接并导入各种包:
LinkingTo: Rcpp, BH
Imports: Rcpp, BH, raster, XML
我看过一篇帖子表明问题与不包含内存类有关,另一篇与C ++ 11有关。
无论哪种方式,我都不确定如何解决这个问题。任何建议将不胜感激。
答案 0 :(得分:3)
对于使用C ++ 11的软件包,您希望在DESCRIPTION
文件中包含以下内容:
SystemRequirements: C++11
根据Dirk的建议,另一种可能性是将以下内容添加到src/Makevars{.win}
文件中:
CXX_STD=C++11