<div dir="ltr"><div>I use Romain's example as follows (after /// line). It works fine with the sourceCpp(..). However, with the package I created, it loaded fine but I got this error below when I instantiate the class. -Thanks for help.</div>
<div><br></div><div> > library("testModule", lib.loc="/people/me/.Rlibs")</div><div>> r <- new( Randomizer )</div><div>Error in .getClassFromCache(Class, where) : object 'Randomizer' not found</div>
<div><br></div><div>////////////////////////////////////////////////////////</div><div>#include <Rcpp.h></div><div><br></div><div>using namespace Rcpp;</div><div><br></div><div>class Randomizer {</div><div>public:</div>
<div><br></div><div> Randomizer(){}</div><div><br></div><div> NumericVector get( int n ){</div><div> RNGScope scope ;</div><div> return runif( n, 0.0, 1.0 );</div><div> }</div>
<div><br></div><div> NumericVector get( int n, double min ){</div><div> RNGScope scope ;</div><div> return runif( n, min, 1.0 );</div><div> }</div><div><br></div><div> NumericVector get( int n, double min, double max ){</div>
<div> RNGScope scope ;</div><div> return runif( n, min, max );</div><div> }</div><div><br></div><div>} ;</div><div><br></div><div><br></div><div>RCPP_MODULE(mod){</div><div><br></div><div>
// helping the compiler disambiguate things</div><div> NumericVector (Randomizer::*get_1)(int) = &Randomizer::get ;</div><div> NumericVector (Randomizer::*get_2)(int,double) = &Randomizer::get ;</div>
<div> NumericVector (Randomizer::*get_3)(int,double,double) =</div><div>&Randomizer::get ;</div><div><br></div><div> class_<Randomizer>( "Randomizer" )</div><div><br></div><div> .default_constructor()</div>
<div><br></div><div> .method( "get" , get_1 )</div><div> .method( "get" , get_2 )</div><div> .method( "get" , get_3 )</div><div> ;</div>
<div><br></div><div><br></div><div>}</div></div>