C++;使用Rcpp::Function成员初始化 使用RCPP,我希望能够创建一个C++类,该类具有一个字段的 RCPP::函数< />代码。例如: class myClass{ Rcpp::Function myR_fun; myClass(Rcpp::Function userR_fun){ myR_fun = userR_fun; } };

C++;使用Rcpp::Function成员初始化 使用RCPP,我希望能够创建一个C++类,该类具有一个字段的 RCPP::函数< />代码。例如: class myClass{ Rcpp::Function myR_fun; myClass(Rcpp::Function userR_fun){ myR_fun = userR_fun; } };,c++,r,rcpp,C++,R,Rcpp,不幸的是,上面的代码不起作用。编译时,会报告以下错误: error: constructor for 'myClass' must explicitly initialize the member 'myR_fun' which does not have a default constructor myClass(Rcpp::Function userR_fun){ ^ 错误报告有点混乱,因为我想我已经在myClass的构造函数中初始化了myR\u fun 我可以使用的一种解

不幸的是,上面的代码不起作用。编译时,会报告以下错误:

error: constructor for 'myClass' must explicitly initialize the member 'myR_fun'
which does not have a default constructor
    myClass(Rcpp::Function userR_fun){
    ^
错误报告有点混乱,因为我想我已经在
myClass
的构造函数中初始化了
myR\u fun

我可以使用的一种解决方法是使用一个空指针

class myClass{
    void* vFunPtr;
    myClass(Rcpp::Function userR_fun){
        vFunPtr = &userR_fun;
    }
};

但从组织的角度来看,这似乎不太理想。如何使一个<代码> RCPP::函数< /Cord>对象成为C++类的一个字段?p> 使用您的语法,
myR\u-fun
首先默认构造,然后分配给
userR\u-fun

请尝试以下方法:

class myClass {
    Rcpp::Function myR_fun;
    myClass(Rcpp::Function userR_fun)
        : myR_fun(userR_fun)
    {}
};

使用这种语法,
myR\u-fun
直接使用
userR\u-fun

构建,这就行了!谢谢