[Rcpp-devel] today's commits overview
Today has been a Rcpp commit day :-) We now have classes for most of the SEXP types: SYMSXP Symbol LISTSXP Pairlist CLOSXP Function ENVSXP Environment PROMSXP Promise LANGSXP Language SPECIALSXP Function BUILTINSXP Function LGLSXP LogicalVector INTSXP IntegerVector REALSXP NumericVector CPLXSXP ComplexVector STRSXP CharacterVector VECSXP GenericVector a.k.a List EXPRSXP ExpressionVector EXTPTRSXP XPtr WEAKREFSXP WeakReference RAWSXP RawVector I have also added methods to deal with S4 objects (in the RObject class since an S4 object can be of any SEXP type): hasSlot, isS4 and slot. For GenericVector and CharacterVector, I have implemented the proxy pattern as described in item 30 of More Effective C++, so that we can do : CharacterVector x(10) ; /* create a character vector of 10 strings */ x[0] ; /* gets the first element */ x[1] = "foo" ; /* sets the second element */ List y(3) ; y[0] = 1 ; /* 1 gets wrap()'ed into a IntegerVector */ y[1] = "foo" ; /* foo gets wrap()'ed into a CharacterVector */ y[2] = false ; /* false gets wrap()'ed into a LogicalVector */ As usual, many examples have been added in the unit tests. Romain
Romain Francois Professional R Enthusiast +33(0) 6 28 91 30 30 http://romainfrancois.blog.free.fr |- http://tr.im/JFqa : R Journal, Volume 1/2, December 2009 |- http://tr.im/IW9B : C++ exceptions at the R level `- http://tr.im/IlMh : CPP package: exposing C++ objects