【发布时间】:2017-10-23 18:46:35
【问题描述】:
我正在使用 Rcpp 模块来导出类方法。其中一些方法的返回类型是枚举。例如:
#include "Enum.h"
#include <Rcpp.h>
using namespace Rcpp;
class EnumTest{
public:
EnumTest(){}
void setP(Polarization pol){p = pol;}
Polarization getP(){return p;}
private:
Polarization p;
};
RCPP_EXPOSED_CLASS(EnumTest)
RCPP_MODULE(EnumTest){
class_<EnumTest>("EnumTest")
.property("p", &EnumTest::getP, &EnumTest::setP)
;
}
极化是一个枚举,定义如下:
enum Polarization{
HORIZONTAL_POL = 0,
VERTICAL_POL = 1
};
当我尝试构建代码时,出现以下错误。
无法在初始化中将 'SEXP' 转换为 'Polarization'
是否有向 Rcpp 公开枚举,类似于公开类的方式?我在 Rcpp 模块小插图中注意到枚举类型列在未来扩展中。这是否意味着没有办法做到这一点?如果是这样,是否有任何可能的解决方法?
【问题讨论】: