クラス/メソッド間のパラメーターとしてリンシドの「R」インスタンスを渡す
質問
統合するためにRCPPとRinsideを使用しています r と C ++. 。複雑でありながら適切に設計されたC ++アーキテクチャがあり、わずか1機能内からRにアクセスすることは難しいと感じています。渡すことは可能ですか? R
さまざまなクラス /関数にインスタンス、より多くのOOPデザインを取得しますか?はいの場合、例はありますか?
クエリを詳しく説明するために、私はこのようなことを言いたいです、
void foo(RInside& R0, int& x0)
{
R0.assign(x0,"totalSum");
}
void foo2(RInside& R0, int& y0)
{
R0.assign(y0,"temp");
R0.parseEvalQ("totalSum = totalSum + temp");
}
int main(int argc, char *argv[])
{
RInside R(int argc, char *argv[]);
int x=10, y = 11;
foo(R,x);
foo2(R,y);
return 0;
}
私が現在気づいているのは、Fooへの各呼び出しが、おそらくRinsideの新しいインスタンスを作成することです。
ありがとう - エゴン
解決
はい、そして私が以前に書いたように rcpp-develリスト (RCPPとリンシドを気にかけている場合は、これをフォローする必要があります) すすぎ 内部に埋め込まれます QT.
私はインスタンスrを入れます main()
そして、このオブジェクトへの参照を使用してクラスに渡します。 1つのRインスタンスのみが実行されていることを確認する必要があるため、それは適切なモデルのように思えます(rはマルチスレッドなどではないなどです---より多くのインスタンスが必要な場合は、考慮してください rServe.
この例はです 今SVNで そして、私の箱の上でこのように見えます:
混合物で遊んだり、両方のドローの中心的な位置を広げたり、推定密度の2つのこぶを区別しない帯域幅を見ることができるので、私はそれがとても好きです。
所属していません StackOverflow