2
在使用Rcpp模塊公開的類上定義泛型方法的適當位置是什麼?更具體地說,假設以下源文件是Rcpp包的一部分。我想用+運算符與玩具類「雙師型」:使用Rcpp模塊的通用方法
#include <Rcpp.h>
class Double {
public:
Double(double d);
double get() const;
private:
...
};
RCPP_MODULE(my_module) {
using namespace Rcpp;
class_<Double>("my.double")
.constructor<double>()
.property("value", &Double::get);
}
出現以下R代碼裏面,得到期望的結果:
.onLoad <- function(libname, pkgname) {
loadRcppModules()
}
.onAttach <- function(libname, pkgname) {
setMethod("+", signature(e1=my.double, e2=my.double), function(e1, e2) {
new(my.double, e1$value + e2$value)
}, where=.GlobalEnv)
}
我,不過,興趣學習解決這個問題的正確方法。
不夠公平。是否有可能修補Rcpp爲通用方法提供C++實現?我願意提供這樣的解決方案... – AlexK
修補程序總是受歡迎的,特別是如果它們附帶文檔和單元測試。但是最好先在rcpp-devel上討論這個問題...... –
在某些時候,我們會支持運營商來推廣C++運營商。何時發生這種情況主要取決於何時可以得到我的手。如果有人願意贊助這個開發,我很樂意起草一份設計文檔。否則,這將等到我真的需要它。 –