我是一名 R 和 C 程序员,试图使用 Rcpp 为用 C 编写的程序创建 R(和 C++)包装器。我对 C++ 并不十分熟悉。
有人可以帮我理解有关如何将 R 对象导入为 C++ 向量的文档吗?(我特别想导入一个包含 int、double 和 numeric 列表混合的 R 列表。)
Rcpp-introduction.pdf 状态:
从 R 对象到 C++ 对象的反向转换由
Rcpp::as
模板的变体实现,其签名为:template <typename T> T as(SEXP x);
它提供较少的性,目前处理将 R 对象转换为原始类型(例如,、、、
bool
... )int
、std::string
原始类型的 STL 向量(例如std::vector<bool>
,、、std::vector<double>
...)和提供接受 SEXP 的构造函数的任意类型.
我对这意味着什么感到困惑,即“模板”、“类型名 T”和“T”的填写内容。我已经看到了很多关于原语的例子,例如
int dx = Rcpp::as<int>(x);
但我不明白这种语法如何映射到上面的模板文档,并且(更重要的是)不明白如何将它推广到 STL 向量。