Rcpp错误:'unique_ptr'不是'std'的成员

时间:2016-09-13 14:36:15

标签: c++ r c++11 rcpp

我在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有关。

无论哪种方式,我都不确定如何解决这个问题。任何建议将不胜感激。

1 个答案:

答案 0 :(得分:3)

对于使用C ++ 11的软件包,您希望在DESCRIPTION文件中包含以下内容:

SystemRequirements: C++11

根据Dirk的建议,另一种可能性是将以下内容添加到src/Makevars{.win}文件中:

CXX_STD=C++11