我感到困惑。
以下代码编译并且正常工作:
#include <Rcpp.h>
using namespace Rcpp;
// [[Rcpp::export]]
List test(){
List l;
IntegerVector v(5, NA_INTEGER);
l.push_back(v);
return l;
}
在 R 中:
R) test()
[[1]]
[1] NA NA NA NA NA
但是当我尝试设置列表中的IntegerVector
时:
// [[Rcpp::export]]
List test(){
List l;
IntegerVector v(5, NA_INTEGER);
l.push_back(v);
l[0][1] = 1;
return l;
}
它不能编译:
test.cpp:121:8: error: invalid use of incomplete type 'struct SEXPREC'
C:/PROGRA~1/R/R-30~1.0/include/Rinternals.h:393:16: error: forward declaration of 'struct SEXPREC'
std::vector<int>
或者Rcpp::IntegerVector
的Rcpp::List
,并且使用一行代码(可能是构造函数)来完成,例如IntegerVector v(3,NA_INTEGER); Rcpp::List test(3,v)
? - statquantList l( 3, IntegerVector(3,NA_INTEGER) )
,但我们的一个文件中有一个错别字(fill__dispatch
被拼写成了fill_dispatch
(只有一个下划线)),导致它无法正常工作。我已经在本地修复了它,并很快会提交修复。 - Romain Francois