0

RInside を使用するコンテキストでのRcpp::InternalFunctionと の違いは何ですか? LOAD_RCPP_MODULEそれらは同じ目的を持っているようですLOAD_RCPP_MODULEが、余分なレイヤーがあります。それらの両方のユースケースは何ですか? また、いつどちらを優先する必要がありますか?

//example with LOAD_RCPP_MODULE
const char* hello( std::string who ){
    std::string result( "hello " ) ;
    result += who ;
    return result.c_str() ;
} 

RCPP_MODULE(bling){
    using namespace Rcpp ;
    function( "hello", &hello );
}

R["bling"] = LOAD_RCPP_MODULE(bling);

これが他の例です

//example with Rcpp::InternalFunction
  const char* hello( std::string who ){
        std::string result( "hello " ) ;
        result += who ;
        return result.c_str() ;
    } 

R["hello"] = Rcpp::InternalFunction( &hello )
4

2 に答える 2

1

"場合によります。"

これらは、同様の目的のための異なるツールです。何かを知らせる「内部」に注意してください。一般に、モジュールは Rcpp (独自のビネット付き) にとっても非常に優れた強力なものであり、RInside からもアクセスできます。

于 2013-09-01T14:12:47.267 に答える
1

モジュールを使用すると、いくつかの関数とクラスを公開できます。InternalFunction一度に 1 つの関数のみを公開します。

InternalFunctionは好奇心のようなもので、「それはできますか」というタイプの質問に答えるために、ある時点で追加しました。かつてあったので Rcpp に残っているものの 1 つですが、あまり注目されていません。これは主RInsideに、R コードが c++ 関数を呼び出せるようにするために使用されます。RInsideこれは、 R を組み込んだ C++ アプリケーションに焦点が当て られていることを考えると、興味深いパターンです。

ただし、モジュールは多くの注目を集めます。私のアドバイスは、それらを使用することです。

于 2013-09-12T09:33:24.917 に答える