2016-09-13 181 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}'中。因人而異。 –

相關問題