2016-09-02 10 views
0

私はC++統合のためにRcppでパッケージを開発しています。関数がSEXPオブジェクトを返すようにRcppExportを使用しました。RcppとRパッケージを統合:CPPコードオブジェクトのドキュメント

問題はtravis-ciが文書化されていないコードオブジェクトがあることを警告するようです。 (これらはcpp関数です)。しかし私は、ユーザーがこれらの機能に直接アクセスすることを望まない。

この問題を解決するにはどうすればよいですか?これらの機能をどのように文書化することができますか?

+4

Rcpp C++ roxygenコメントを使用していますか? – hrbrmstr

+0

いいえ、私はそれを使用していません。 roxygenコメントを追加するとドキュメンテーションが生成されますか? – Malith

+0

Rcpp roxygenコメントの接頭辞は '# 'の代わりに' //' ' – coatless

答えて

3

ここでは基本的な誤解があるようです。

あなたNAMESPACEはワイルドカードが含まれている場合、明らかは、ヘルプ項目を必要とする文書化されているexportPattern("^[[:alpha:]]+")その後、各グローバルシンボルがエクスポートされあたりR規格「すべてをエクスポート」。

1つの簡単な修正では、すべてをエクスポートせず、エクスポートしたいドキュメントを作成するだけです。私たちは時々それを行い、foo_implのようなRcpp関数を呼び出し、R関数foo(ドキュメントあり)をfoo_implと呼ぶことがあります。その場合は、fooをエクスポートして、すべてが有効です。要するに

、あなたはRパッケージとあまりないRcppについて混乱しています。彼らが何をしているのかを感じるために、のソース(小)Rcppパッケージをダウンロードすることをお勧めします。

+0

_roxygen2_パラダイム内の目的の関数をエクスポートするには、Rコードでは '# '@ export'を使い、cppでは' @'を使います。 – coatless

+0

それは私が(個人的に)推奨するものですが、嫌いなのは私だけかもしれません。あなたのマイレージは異なる場合があります。また、10語の推薦は、利用可能なすべての選択を過小評価する可能性があります。 –

+0

roxygen2がまだ名前空間を制御しているので、 'exportPattern("^[[:alpha:]] + ")'を削除した後に新しい質問が出ることがあります。プロアクティブ – coatless

関連する問題