2
有一個類我必須移植到R.我已將它公開爲Rcpp模塊。但是,我還需要在R之外使用該類。我的意思是我想用谷歌測試來測試這個類。爲了編譯測試,類不得使用Rcpp中的任何內容。在Rcpp中暴露類 - 工廠而不是構造函數
不幸的是,創建該類實例的函數必須具有相當靈活的參數列表。我想使用命名參數,因爲會有許多參數可供您選擇指定。因爲這個原因,我不能聲明在R中有任何用法的構造函數。如果我可以定義一個可以作爲工廠方法執行的函數,那就沒問題。我做到了。
RcppExport SEXP CEC__new(SEXP args);
RCPP_MODULE(cec) {
using namespace Rcpp;
class_<CEC>("cec")
.method("test", &CEC::test)
.method("loop", &CEC::loop)
.method("singleLoop", &CEC::singleLoop)
.method("entropy", &CEC::entropy)
;
}
setClass("cec", representation(pointer = "externalptr"))
setMethod("initialize", "cec", function(.Object, ...) {
[email protected] <- .Call("CEC__new", ...)
.Object
})
的問題是,我不能把我創建實例的任何方法。看起來我必須在R中爲類定義'$'。我不想那樣做。我想利用漂亮,小巧的Rcpp模塊優惠。你能建議我如何解決這個問題?