2016-09-13 125 views
2

我在Ubuntu 16.04 LTS上使用RStudio,并使用Rcpp为R包创建代码。Rcpp错误:'unique_ptr'不是'std'的成员

我的代码工作正常,直到我将其移入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

我想你需要在'DESCRIPTION'文件的末尾有'SystemRequirements:C++ 11'。 – cdeterman

+0

接受您满意的答案也是一个好习惯,因此问题被标记为已回答。 – cdeterman

回答

2

对于C++ 11包,你想在你的DESCRIPTION文件中的以下内容:

SystemRequirements: C++11 

至于建议由德克另一种可能性是添加以下为src/Makevars{.win}文件:

CXX_STD=C++11 
+4

这是_several_的其中一种可能性,我的首选是将'CXX_STD = C++ 11'添加到'src/Makevars {.win}'中。因人而异。 –

相关问题