[Rcpp-devel] constructor with many parameters in Rcpp module

andre zege andre.zege at gmail.com
Tue Nov 1 02:14:15 CET 2011


Hi everybody, my apologies in advance if i missed something obvious in
documentation or misinterpreted things. I started  experimenting with Rcpp
modules and it seems to do in simpler cases exactly what i need. However, I
am stuck on something that is probably very common

I am using the class for which constructor has 11 parameters, some of which
are pointers to doubles.

Strategy s(double *, double *, double *, double *, double *, int, int, int,
double, double, double)

Pointers  point to memory containing matrices that armadillo code inside
the class Strategy works works with. According to what i read in rcpp
module docs, a class could be defined in rcpp module only if constructor
has six or less parameters. So it seems that the only way for me to use the
class from R is to write a Rcpp function that would get called from R with
a signature

RcppExport void helper(SEXP, SEXP, ...., SEXP){

//convert input parameters


Strategy s(....);

//do whatever needs to be done in Strategy

}

and  call constructor  within C++ code and then return to R. Is this the
best way to use Rcpp  things in my circumstance?


Also, if i take this approach, how  would I pass pointers to double to a
C++ constructor? It seems i need to convert SEXP that i receive from R to
double * in Rcpp framework -- it seems that as<>() template wouldn't
convert to a pointer.  I could use of course .C interface, but i wanted to
use Rcpp for a number  of C++ classes in a uniform way, regardless of the
number of parameters in the constructor.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/rcpp-devel/attachments/20111031/f5f914a4/attachment.htm>


More information about the Rcpp-devel mailing list