我正在使用 Rcpp 在 R 中创建一个利用 C++ 代码的包。我已阅读所有 Rcpp 小插曲,但我无法找到以下问题的解决方案。
C++
我尝试使用的类之一包含一个指针。我正在使用模块公开课程。当我尝试在 R 中安装软件包时,出现以下错误。
error: expected unqualified-id before '*' token.field("*w", &ffm_model::*w)
我究竟做错了什么?
类包含指针的代码
typedef float ffm_float;
typedef int ffm_int;
class ffm_model {
public:
ffm_int n; // number of features
ffm_int m; // number of fields
ffm_int k; // number of latent factors
ffm_float *w = nullptr;
bool normalization;
~ffm_model();
};
对应RCPP模块的代码
RCPP_MODULE(ffmModelMod){
using namespace Rcpp;
//Expose class as ffm_model on the r side
class_<ffm_model>( "ffm_model")
.field("n", &ffm_model::n)
.field("m", &ffm_model::m)
.field("k", &ffm_model::k)
.field("*w", &ffm_model::*w)
.field("normalization", &ffm_model::normalization)
.method("~ffm_model",&ffm_model::~ffm_model)
;
}