В чем разница между Rcpp::InternalFunction
и LOAD_RCPP_MODULE
в контексте использования RInside? Они, похоже, имеют ту же цель, что и у LOAD_RCPP_MODULE
есть дополнительный слой. Каковы варианты использования для обоих из них, и когда я должен выбирать один за другим?Разница между LOAD_RCPP_MODULE и Rcpp :: InternalFunction
//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)
true Я согласен с вашими комментариями, есть некоторые варианты использования функции «InternalFunction», например, функция в C++, переданная в библиотеку оптимизации R, но ее определенно не шоу-стоппер, если вы избегаете «InternalFunction». – pyCthon
Несомненно. Я знаю, что это полезно, иначе я бы не стал его вводить. Если ваша целевая функция является функцией C++, я думаю, что я бы посмотрел на алгоритмы оптимизации, которые не нужно возвращать в R, чтобы называть это ... так все это в C++ –