sourceCpp knows how to deal with modules, i.e.:
inc <- '
#include <Rcpp.h>
using namespace Rcpp;
double norm( double x, double y ) {
return sqrt( x*x + y*y );
}
RCPP_MODULE(mod) {
function( "norm", &norm );
}'
sourceCpp( code = inc )
giving:
> norm( 3, 3 )
[1] 4.242641
Romain
> Le 19 nov. 2014 à 05:49, Aaron Polhamus <[email protected]> a écrit :
>
> Dear list,
>
> In the process of writing a comprehensive unit testing application for Rcpp I
> may have come across a bug in the code. It seems to me that the following
> block should execute just fine, exporting the C++ class "norm" to the global
> environment:
>
> require(inline)
> require(Rcpp)
>
> inc <- '
> using namespace Rcpp;
> double norm( double x, double y ) {
> return sqrt( x*x + y*y );
> }
> RCPP_MODULE(mod) {
> function( "norm", &norm );
> }'
>
> fx <- cxxfunction(signature(), plugin="Rcpp", include=inc)
> mod <- Module("mod", getDynLib(fx))
>
> loadRcppClass('norm', 'norm', mod)
>
> What happens, though, is that the following error is returned:
>
> Error in as.environment(pos) :
> no item called "moduleName" on the search list
>
> Digging in to loadRcppClass, I find that the function fails at the line:
>
> mod <- loadModule(module, NULL, env = where, loadNow = TRUE)
>
> Entering loadModule, the function fails here, at the "get" statement:
>
> loadM <- as.environment(module)
> module <- get(loadM, "moduleName")
>
> Isn't this backward? get syntax is:
>
> get(x, pos = -1, envir = as.environment(pos), mode = "any",
> inherits = TRUE)
>
> Where "x" is the object sought in the specified environment. In this case,
> the function is failing because it can't find moduleName in the environment's
> search list, but the reason for this seems to be that the current statement
> is search for an environment within a character string, rather than a
> character string representing a named object within an environment.
>
> Is this in need of a patch, or am I missing something obvious?
>
> Cheers,
> Aaron
>
> _______________________________________________
> Rcpp-devel mailing list
> [email protected]
> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
_______________________________________________
Rcpp-devel mailing list
[email protected]
https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel