【问题标题】:C++ Class with Rcpp::Function member具有 Rcpp::Function 成员的 C++ 类
【发布时间】:2016-09-05 06:49:54
【问题描述】:

使用 Rcpp,我希望能够创建一个具有 Rcpp::Function 字段的 C++ 类。例如:

class myClass{
    Rcpp::Function myR_fun;
    myClass(Rcpp::Function userR_fun){
        myR_fun = userR_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_fun

我可以使用的解决方法是使用 void 指针

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

但从组织的角度来看,这似乎不是最理想的。使 Rcpp::Function 对象成为 C++ 类的字段的正确方法是什么?

【问题讨论】:

    标签: c++ r rcpp


    【解决方案1】:

    使用您的语法,首先默认构造myR_fun,然后分配userR_fun

    试试这个:

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

    使用此语法myR_fun 直接使用userR_fun 构造。

    【讨论】:

    • 这样就行了!谢谢!
    猜你喜欢
    • 1970-01-01
    • 2013-05-11
    • 1970-01-01
    • 1970-01-01
    • 2017-02-19
    • 2011-02-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多