RStudioでRcppを使用することを目的としたRパッケージをセットアップしていましたが、Rcpp属性で正しく動作するように苦労しています。Rcppでパッケージをビルドすると、属性が正しく処理されない
これがどのように動作するかの私の理解はかなり希薄であるが、次のように私の理解である:ソースC++ファイルで
- 、あなたはRcppタグ
// [[Rcpp::export]]
をエクスポートするためのC++の機能をマークし、たとえば、属性を追加することができますRのためにそれを利用可能にする - パッケージをビルドするとき、
Rcpp
はファイルRcppExports.cpp
に適切なC++コードを生成し、RソースファイルRcppExports.R
にラッパー関数を生成します。
// [[Rcpp::export]]
は、パッケージの名前空間にエクスポートするための関数をマークするのではなく、Rにエクスポートするための関数にマークするだけです。
さらに重要なことに、Rcpp属性タグ// [[Rcpp::depends()]]
が正しく処理されていません。コードhereを新しいソースファイルにコピーしてパッケージを再構築すると、は、BigMatrix
という識別子が宣言されていないことを示すRcppExports.cpp
ファイルにエラーがスローされ、属性tage // [[Rcpp::depends(bigmemory)]]
が正しく処理されていないことを示します。
Rcppの属性タグの理解に何が欠けていますか?
Rcpp属性とその 'compileAttributes()'ヘルパーに頼るのではなく、関数インタフェースを手で書くだけでよいのです。結局のところ、特別な場合があります(特別なヘッダーが必要です)。 –