C++ Class 与 Rcpp::Function 成员
C++ Class with Rcpp::Function member
使用 Rcpp,我希望能够创建一个具有 Rcpp::Function
字段的 C++ class。例如:
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
我可以使用的解决方法是使用空指针
class myClass{
void* vFunPtr;
myClass(Rcpp::Function userR_fun){
vFunPtr = &userR_fun;
}
};
但从组织的角度来看,这似乎不是最佳选择。使 Rcpp::Function
对象成为 C++ class 的字段的正确方法是什么?
使用您的语法,myR_fun
首先是默认构造的,然后分配给 userR_fun
。
试试这个:
class myClass {
Rcpp::Function myR_fun;
myClass(Rcpp::Function userR_fun)
: myR_fun(userR_fun)
{}
};
使用此语法 myR_fun
直接使用 userR_fun
构造。
使用 Rcpp,我希望能够创建一个具有 Rcpp::Function
字段的 C++ class。例如:
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
我可以使用的解决方法是使用空指针
class myClass{
void* vFunPtr;
myClass(Rcpp::Function userR_fun){
vFunPtr = &userR_fun;
}
};
但从组织的角度来看,这似乎不是最佳选择。使 Rcpp::Function
对象成为 C++ class 的字段的正确方法是什么?
使用您的语法,myR_fun
首先是默认构造的,然后分配给 userR_fun
。
试试这个:
class myClass {
Rcpp::Function myR_fun;
myClass(Rcpp::Function userR_fun)
: myR_fun(userR_fun)
{}
};
使用此语法 myR_fun
直接使用 userR_fun
构造。